Package io.foodtechlab.i18n.translator
Class RuLocalizationI18NTranslator
- java.lang.Object
-
- io.foodtechlab.i18n.translator.LocalizationI18NTranslator
-
- io.foodtechlab.i18n.translator.RuLocalizationI18NTranslator
-
- All Implemented Interfaces:
I18NTranslator
public class RuLocalizationI18NTranslator extends LocalizationI18NTranslator
Клас переводчика на русский язык.
Имеет методы настроенные на работу с файлами локализации типа**_localization.properties. Так же реализует формат ключей инъекций в формате{code}. По умолчанию берёт значение по ключуCODE.textиз файла локализации.
Имеет поддержку падежей в зависимости от переданного числа. Например, если передать следующие числа можно получать соответствующие склонения:
21 - Осталось 11 рубль
22 - Осталось 11 рубля
25 - Осталось 11 рублей
Для того чтобы этот механизм сработал нужно указать в конфигурации
,где balance - название переменой которую нужно встроить (injections), {**:case} конструкция которая указывает куда нужно встроить склоняемое слово
CODE.text=Осталось {balance} {balance:case}
CODE.hasNumberCase=true
CODE.caseFields=balance
CODE.balance=рубль,рубля,рублей
переменнаяhasNumberCaseэто флаг, что нужно учитывать склонение в зависимости от числа
переменнаяcaseFieldsэто перечисление полей в которые нужно встроить переменные со склонениями, переменные разделяются(,)
переменнаяbalanceэто перечисление вариантов склонения слова, в качестве ключа используется название переменной, варианты разделяются(,)- Since:
- 1.2
- Author:
- kiryanovvi
-
-
Constructor Summary
Constructors Constructor Description RuLocalizationI18NTranslator(org.springframework.context.MessageSource localizationSource)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringgetText(String code)Берёт значение из файла локализации по ключу CODE.textprotected booleanhasNumberCase(String code)Имеет зависимость между числом и падежом слова.booleanisRightTranslator(Locale locale)Метод должен вернуть true если переводчик может перевести на переданную локальStringtranslate(String code)Метод возвращает уже переведённую строку, взятую из файла переводов (**.properties).<T> Stringtranslate(String code, Map<String,T> injections)Метод возвращает уже переведённую строку, взятую из файла переводов (**.properties).-
Methods inherited from class io.foodtechlab.i18n.translator.LocalizationI18NTranslator
getProperty, toInjectionKey
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.foodtechlab.i18n.I18NTranslator
getLocale
-
-
-
-
Method Detail
-
isRightTranslator
public boolean isRightTranslator(Locale locale)
Description copied from interface:I18NTranslatorМетод должен вернуть true если переводчик может перевести на переданную локаль- Parameters:
locale- локаль на которую должен переводить переводчик- Returns:
- true если переводчик может перевести на выбранную локаль
-
translate
public String translate(String code)
Description copied from interface:I18NTranslatorМетод возвращает уже переведённую строку, взятую из файла переводов (**.properties). Поиск производится поcode- Parameters:
code- код по которому выполняется поиск локализации- Returns:
- текст локализации
-
translate
public <T> String translate(String code, Map<String,T> injections)
Description copied from interface:I18NTranslatorМетод возвращает уже переведённую строку, взятую из файла переводов (**.properties). Поиск производится поcode. Данный метод поддерживает инъекции. Из HashMap, в возвращаемую строку, будут встраиваться значения хранимые вvalue. Поkeyбудет производиться поиск вхождения в текст и будет заменён наvalue- Type Parameters:
T- для встраивания любого типа используется метод toString()- Parameters:
code- code код по которому выполняется поиск локализацииinjections- Словарь инъекций. Key - ключ по которому выполняется поиск места инъекции. Value значение встраиваемое в строку- Returns:
- текст локализации
-
hasNumberCase
protected boolean hasNumberCase(String code)
Имеет зависимость между числом и падежом слова.Например: 1 рубль, 2 рубля, 5 рублей
- Parameters:
code- код перевода- Returns:
- true если перевод имеет склонение
- Since:
- 1.2
-
getText
public String getText(String code)
Description copied from class:LocalizationI18NTranslatorБерёт значение из файла локализации по ключу CODE.text- Overrides:
getTextin classLocalizationI18NTranslator- Parameters:
code- код по которому можно найти перевод- Returns:
- текст локализации
-
-