-
-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define technical terms #30
Comments
UI language/localeThe language and jurisdiction used to determine content in the User Interface. E.g. |
placeholder/variable locale / formatting localeThe locale (regional language) used for placeholder content or to format dynamic variables. E.g. a placeholder variable may be for a currency value 123456.78 INR. In a US locale (en_US/US) it would appear as |
resource localeThe locale used for content in the user interface. This is not always the formatting locale. For example, in iOS and Android, a user may choose a language for content, and "regional settings" for formats - I can choose to have my UI in American English but my regional settings for dates, time, numbers, calendar to follow European or even Chinese conventions. |
locale chainThis refers to a list of approved locales to choose content from if content for the requested locale does not exist. Internally, we use this to keep the user flow contained in legally approved content since we have legal obligations to present certain terms and liabilities if we do not. For a user, this could refer to a their list of languages in order of preference similar to the HTML Accept-Language list. |
language fallbackIf content is not available in the requested language, this is the process to "fall back" to the next available language in the |
@mimckenna is there a value in diverging at all from https://unicode.org/reports/tr35/#Identifiers ? |
@zbraniecki - good point - I was rattling off how I would describe these terms to members of my technical team. Now that you bring it up, I agree that we should use pre-existing definitions in Unicode or other accepted standards, with links back to those definitions, where they exist. I'll be happy to revise my first attempts above following that model. I think what the purpose of this doc is to provide very concise descriptions of each term as opposed to the multi-paragraph descriptions in tr35. We can wordsmith these down to single-sentence descriptions with pointers back to reference standards. Some of these terms/concepts may not be found in tr35, such as AST (abstract syntax tree), and some others have fairly complete but lengthy descriptions that would be difficult, as is, to fit in a single sentence when pulled from TR35. An example would be the developer viewpoint (developer format) of message syntax vs the translator view of messages to translate (translation/localization format). This is implied in TR35 but it is far from concise. |
Question - shall I direct-edit my initial responses, or revise as additional github comments in the thread? |
locale chain is called language priority list in BCP 47. Similarly, language fallback is known as lookup matching. Maybe there should be a mention at the end. e.g. "... This is so called language priority list in the formal BCP 47 terminology." or something alike. |
I don't think we should follow BCP47 btw. Unicode UTS #35 is more up to date.
I don't think that's accurate. |
Revising in the form of additional comments (maybe all batched together as one comment?) sounds good. At this point, I think it's good to get as many responses recorded as possible first. Afterwards, we see what we observe & discuss. I'm interested in waiting for everyone's responses are because I think the responses in aggregate can help give us better clarity than just a few. |
Here are my responses for the terms I've used: interpolate - formatting & inserting values inside of a string |
@zbraniecki This is for defining terminology, so I didn't mean to suggest following BCP47. I meant to use standard terms such as language priority list and lookup from BCP47, which defines elements and schemes for dealing with locales. BCP47 says filtering and lookup are the 2 basic types of matching schemes. The former can return multiple locales, while the latter always returns one. Mozilla's "Matching" appears to be lookup performed on each requested locale. Isn't it an enhanced form of lookup? UTS 35 is a more practical specification adopted by CLDR and others. I think it is a way to practice BCP47 and I would agree with you that we may find it reasonable to have some deviations in the corners. |
It is. But BCP47 specifies how the algorithms should work, and I don't think its the only available way, hence I'd prefer not to overspecify that yet :) Also, I noticed "language fallback" and "locale chain" used separately. I'd like to suggest we use "locale fallback chain" - a list of locales created as a result of locale negotiation between available and requested locales. |
Looks like this area is fuzzy: matching / enhanced form of lookup / fallback / negotiation But it is negotiation (once, at application launch time) followed by fallback (for every resource load) The UI / formatting locales are not 100% separate, you will not see French UI with German dates (unless you did something wrong in the localization :-) I can add a couple of joke definitions:
More serious definitions:
They are over-simplifications, but are memorable and clarify what the "buckets" are. Sure, "translators" really mean localization companies + localization engineers + linguistic / technical QA + PMs + language managers + terminology managers + language specialists + reviewers + DTP, etc, a full machinery. L10N takes "assets" from human language A and gives back the same assets in languages X, Y, Z, ... I18N make sure applications work without any code changes in any human language. G11N means market research, financial, tech infrastructure, legal, competition, decisions to localize or not (you can go to a new country without translating), etc. See how much I had to write, just to (partially) explain 3 short bullets? |
Thanks for the replies so far.
That was indeed thorough (thanks), but 1-2 sentences per term would have sufficed. The reason -- more to the point -- here are sets of terms where I want to figure out what they mean. Are they the same? related? different? and how so? My hunch is that we can dedupe some of these terms to have clearer conversations (or less likely to talk past each other). selector placeholder API argument syntax |
@echeran this can be closed no? i thinks all terms already merged into glossary, that's correct? |
Yes, I agree, all these terms are contained in the glossary, so we should be fine to close this issue. I'll do that now. |
This isn't a feature so much as an attempt to see if we can all define some of the technical terms that we've been using, based on what they mean to us. From the rich conversations we've had in meetings and in Github issue threads, I suspect that we may be using different terms to describe the same concept, or even the same term to refer to different concepts.
The thought is that if we each individually fill out our definitions for terms in a separate comment, we can compare notes at the end. And maybe some good consequences can pop out from that (reduced vocabulary -> clearer convos? realization of more common ground?)
I've gone through a few of the Github threads with the largest use of technical-sounding terms (skipping over things like linguistic terms), and listed them in order of first observed occurrence. To participate, just copy-paste the terms that mean something to you into a new comment below, and define them in your own words.
The text was updated successfully, but these errors were encountered: