Как установить локализованные тексты для метки программно?

Есть ли способ программно установить текст метки (Toybox.WatchUi.Text) с локализованной строкой во время выполнения? Я знаю, как установить локализованную строку для метки из XML-файлов пользовательского интерфейса, и мне было интересно, возможно ли это также из файла Monkey C, например. label.setText("@Strings.localization_key")?


person cmdaltent    schedule 20.02.2016    source источник


Ответы (1)


Я обнаружил аккаунт Garmin на Github, где они также предоставляют пример кода приложений, и нашел решение в одном из проекты.

Это просто Rez.Strings.<string_id> с идентификатором и соответствующим переводом в одном из файлов строковых ресурсов.

Однако, похоже, не работает объединение локализованной строки с другой строкой и помещение конкатенации в виде текста в метку. Очевидно, что внутренний String-ID отображается, а не фактическая строка. Такое поведение возникло у меня с Connect IQ SDK 1.2.5.

person cmdaltent    schedule 26.02.2016
comment
Я нашел решение проблемы конкатенации. Вы должны использовать WatchUi.loadResource(Rez.Strings.stringId) вместо того, чтобы просто ссылаться на идентификатор. Вы можете делать такие вещи, как var myLocalizedString = WatchUi.loadResource(Rez.Strings.stringId) + otherStringVarWithValue;. - person simonra; 06.09.2018