Package limn.i18n
@NullMarked
package limn.i18n
Internationalization: a localizable string as a value (
I18nString),
the process-wide language it resolves against (I18n), and the
translation sources it reads (StringBundle,
PropertyBundle).
A localizable string is a value the component stores, not a lookup it performs: capturing it is then the correct thing to do rather than the bug. The text pipeline draws Latin, Greek, Cyrillic and CJK; scripts needing shaping or bidi do not render correctly yet, whatever translations are registered.
-
ClassDescriptionReady-made date and time formats, beside
NumberFormats: what a table puts in a date column, and what any caption that shows a day or an hour can use.The UI language: the process locale, the locale in effect here, the registered bundles, and the epoch that everyI18nStringvalidates its cache against.A piece of user-visible text, carried as a value instead of resolved into aStringat the point of use.Whether the language moved since a derived string was last built: the two facts a memo of formatted text has to compare,I18n.epoch()andI18n.locale(), held as one.Ready-made number formats: what a chart puts on an axis tick or a tooltip, what a table puts in a numeric column and its footer, and what any caption that shows a number can use.The digits a formatted number is written in: one zero code point and its nine successors, which is all a decimal numbering system is.Which grammatical form a language uses for a count: "1 item", "2 items", and the four other answers some languages give.CLDR's six cardinal categories.A localizable sentence with a count in it: "Documents, 12 items".AStringBundlebacked by UTF-8.propertiesfiles on the classpath, one family per domain:A source of translations.A key no registered bundle translates into a language, so the text fell back to the English its declaration carries: a typo in a key, a key left behind by a rename, or a file that has not caught up with the code.