Есть ли способ программно установить текст метки (Toybox.WatchUi.Text) с локализованной строкой во время выполнения? Я знаю, как установить локализованную строку для метки из XML-файлов пользовательского интерфейса, и мне было интересно, возможно ли это также из файла Monkey C, например. label.setText("@Strings.localization_key")
?
Как установить локализованные тексты для метки программно?
Ответы (1)
Я обнаружил аккаунт Garmin на Github, где они также предоставляют пример кода приложений, и нашел решение в одном из проекты.
Это просто Rez.Strings.<string_id>
с идентификатором и соответствующим переводом в одном из файлов строковых ресурсов.
Однако, похоже, не работает объединение локализованной строки с другой строкой и помещение конкатенации в виде текста в метку. Очевидно, что внутренний String-ID отображается, а не фактическая строка. Такое поведение возникло у меня с Connect IQ SDK 1.2.5.
person
cmdaltent
schedule
26.02.2016
Я нашел решение проблемы конкатенации. Вы должны использовать
WatchUi.loadResource(Rez.Strings.stringId)
вместо того, чтобы просто ссылаться на идентификатор. Вы можете делать такие вещи, как var myLocalizedString = WatchUi.loadResource(Rez.Strings.stringId) + otherStringVarWithValue;
.
- person simonra; 06.09.2018