public final class I18n extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
I18n.PluralMode
Enumeration of possible plural modes.
|
static interface |
I18n.QuirkyPluralString
This annotates strings which do not permit a clean i18n.
|
Modifier and Type | Field and Description |
---|---|
private static java.util.Map<java.lang.String,I18n.PluralMode> |
languages |
private static java.lang.String |
loadedCode |
private static I18n.PluralMode |
pluralMode |
private static java.util.Map<java.lang.String,java.lang.String[]> |
pstrings |
private static java.util.Map<java.lang.String,java.lang.String> |
strings |
Modifier | Constructor and Description |
---|---|
private |
I18n() |
Modifier and Type | Method and Description |
---|---|
static void |
addTexts(java.io.File source)
I18n initialization for plugins.
|
static java.lang.String |
escape(java.lang.String msg) |
static java.util.Locale[] |
getAvailableTranslations()
Get a list of all available JOSM Translations.
|
private static java.lang.String |
gettext(java.lang.String text,
java.lang.String ctx) |
private static java.lang.String |
gettext(java.lang.String text,
java.lang.String ctx,
boolean lazy) |
private static java.lang.String |
gettextLazy(java.lang.String text,
java.lang.String ctx) |
private static java.lang.String |
gettextn(java.lang.String text,
java.lang.String plural,
java.lang.String ctx,
long num) |
private static java.net.URL |
getTranslationFile(java.lang.String lang) |
static boolean |
hasCode(java.lang.String code)
Determines if a language exists for the given code.
|
static void |
init()
I18n initialization.
|
private static boolean |
load(java.io.InputStream en,
java.io.InputStream tr,
boolean add) |
private static boolean |
load(java.lang.String l) |
static java.lang.String |
marktr(java.lang.String text)
Marks a string for translation (such that a script can harvest
the translatable strings from the source files).
|
static java.lang.String |
marktrc(java.lang.String context,
java.lang.String text) |
private static int |
pluralEval(long n) |
static void |
set(java.lang.String localeName)
Sets the default locale (see
Locale.setDefault(Locale) to the local
given by localName . |
(package private) static void |
setupJavaLocaleProviders() |
static java.lang.String |
tr(java.lang.String text,
java.lang.Object... objects)
Translates some text for the current locale.
|
static java.lang.String |
trc(java.lang.String context,
java.lang.String text)
Translates some text in a context for the current locale.
|
static java.lang.String |
trcLazy(java.lang.String context,
java.lang.String text) |
static java.lang.String |
trn(java.lang.String singularText,
java.lang.String pluralText,
long n,
java.lang.Object... objects)
Translates some text for the current locale and distinguishes between
singularText and pluralText depending on n . |
static java.lang.String |
trnc(java.lang.String context,
java.lang.String singularText,
java.lang.String pluralText,
long n,
java.lang.Object... objects)
Translates some text in a context for the current locale and distinguishes between
singularText and pluralText depending on n . |
private static volatile I18n.PluralMode pluralMode
private static volatile java.lang.String loadedCode
private static volatile java.util.Map<java.lang.String,java.lang.String> strings
private static volatile java.util.Map<java.lang.String,java.lang.String[]> pstrings
private static java.util.Map<java.lang.String,I18n.PluralMode> languages
private I18n()
public static java.lang.String tr(java.lang.String text, java.lang.Object... objects)
tr("JOSM''s default value is ''{0}''.", val)
.
trn(java.lang.String, java.lang.String, long, java.lang.Object...)
for distinguishing singular from plural text, i.e.,
do not use tr(size == 1 ? "singular" : "plural")
nor
size == 1 ? tr("singular") : tr("plural")
text
- the text to translate.
Must be a string literal. (No constants or local vars.)
Can be broken over multiple lines.
An apostrophe ' must be quoted by another apostrophe.objects
- the parameters for the string.
Mark occurrences in text
with {0}
, {1}
, ...trn(java.lang.String, java.lang.String, long, java.lang.Object...)
,
trc(java.lang.String, java.lang.String)
,
trnc(java.lang.String, java.lang.String, java.lang.String, long, java.lang.Object...)
public static java.lang.String trc(java.lang.String context, java.lang.String text)
context
- string that helps translators to find an appropriate
translation for text
.text
- the text to translate.tr(java.lang.String, java.lang.Object...)
,
trn(java.lang.String, java.lang.String, long, java.lang.Object...)
,
trnc(java.lang.String, java.lang.String, java.lang.String, long, java.lang.Object...)
public static java.lang.String trcLazy(java.lang.String context, java.lang.String text)
public static java.lang.String marktr(java.lang.String text)
String[] options = new String[] {marktr("up"), marktr("down")};
lbl.setText(tr(options[0]));
text
- the string to be marked for translation.text
unmodified.public static java.lang.String marktrc(java.lang.String context, java.lang.String text)
public static java.lang.String trn(java.lang.String singularText, java.lang.String pluralText, long n, java.lang.Object... objects)
singularText
and pluralText
depending on n
.
trn("There was an error!", "There were errors!", i)
or
trn("Found {0} error in {1}!", "Found {0} errors in {1}!", i, Integer.toString(i), url)
.singularText
- the singular text to translate.
Must be a string literal. (No constants or local vars.)
Can be broken over multiple lines.
An apostrophe ' must be quoted by another apostrophe.pluralText
- the plural text to translate.
Must be a string literal. (No constants or local vars.)
Can be broken over multiple lines.
An apostrophe ' must be quoted by another apostrophe.n
- a number to determine whether singularText
or pluralText
is used.objects
- the parameters for the string.
Mark occurrences in singularText
and pluralText
with {0}
, {1}
, ...tr(java.lang.String, java.lang.Object...)
,
trc(java.lang.String, java.lang.String)
,
trnc(java.lang.String, java.lang.String, java.lang.String, long, java.lang.Object...)
public static java.lang.String trnc(java.lang.String context, java.lang.String singularText, java.lang.String pluralText, long n, java.lang.Object... objects)
singularText
and pluralText
depending on n
.
There can be different translations for the same text within different contexts.context
- string that helps translators to find an appropriate
translation for text
.singularText
- the singular text to translate.
Must be a string literal. (No constants or local vars.)
Can be broken over multiple lines.
An apostrophe ' must be quoted by another apostrophe.pluralText
- the plural text to translate.
Must be a string literal. (No constants or local vars.)
Can be broken over multiple lines.
An apostrophe ' must be quoted by another apostrophe.n
- a number to determine whether singularText
or pluralText
is used.objects
- the parameters for the string.
Mark occurrences in singularText
and pluralText
with {0}
, {1}
, ...tr(java.lang.String, java.lang.Object...)
,
trc(java.lang.String, java.lang.String)
,
trn(java.lang.String, java.lang.String, long, java.lang.Object...)
private static java.lang.String gettext(java.lang.String text, java.lang.String ctx, boolean lazy)
private static java.lang.String gettext(java.lang.String text, java.lang.String ctx)
private static java.lang.String gettextLazy(java.lang.String text, java.lang.String ctx)
private static java.lang.String gettextn(java.lang.String text, java.lang.String plural, java.lang.String ctx, long num)
public static java.lang.String escape(java.lang.String msg)
private static java.net.URL getTranslationFile(java.lang.String lang)
public static java.util.Locale[] getAvailableTranslations()
public static boolean hasCode(java.lang.String code)
code
- The language codetrue
if a language exists, false
otherwisestatic void setupJavaLocaleProviders()
public static void init()
public static void addTexts(java.io.File source)
source
- file path/name of the JAR or Zip file containing translation stringsprivate static boolean load(java.lang.String l)
private static boolean load(java.io.InputStream en, java.io.InputStream tr, boolean add)
public static void set(java.lang.String localeName)
Locale.setDefault(Locale)
to the local
given by localName
.
Ignored if localeName is null. If the locale with name localName
isn't found the default local is set to en
(english).localeName
- the locale name. Ignored if null.private static int pluralEval(long n)