2009-12-28 2 views
0

Как я могу установить язык дампов проекта WebOs? Стандартный способ добавления интернационализации в WebOS заключается в использовании функции $ L(), где я могу установить ключ для переведенной строки. Но если текущий язык не указан в проекте, WebOS отображает ключ для пользователя. Как я могу остановить это поведение и установить язык по умолчанию, который будет использоваться вместо ключа.Как установить язык по умолчанию в WebOs

PS: Я думаю, что подход Palm к действию в реальном мире не является хорошим способом программирования.

Плохой пример: $L("This should be not a real world sentence!!")
Лучше пример: $L("key.subKey")

+0

Для фона, "реальных предложений" является методология GNU gettext. http://en.wikipedia.org/wiki/GNU_gettext –

ответ

1

Вы можете использовать пару ключ-значение, чтобы решить эту проблему (с Palm documentation):

Если исходная строка не подходит в качестве ключ, функцию $ L() можно вызвать с помощью явного ключа:

$L("value":"Done", "key": "done_key"); 

Во время выполнения, e результатом вызова $ L() является перевод строки, переданной как значение. Переводы «живут» в файле /resources/locale/strings.json.

Пример: содержание файла app_name/ресурсы/es_us/strings.json:

{

"My text here": "Mi texto aquí", 
"done_key": "Listo", 
"Some other string": "Some other string's translation" 

}

+0

Это не совсем то решение, которое я хотел бы увидеть. Как говорится в документации, этот пример используется, если исходная строка не подходит в качестве ключа, но не как откат, если ключ не указан в ресурсах. На iPhone вы можете установить язык по умолчанию, который используется, если ключ не указан в текущем файле ресурсов языка, и только если этот резервный отказ не отображается, в приложении отображается ключ. – AlexVogel

+0

Это может быть так, как это работает (я не знаю). Если в вашей строке strings.json нет строки, которую вы локализовали, разве она просто не использует ту, которую вы положили в $ L()? Таким образом, вы можете использовать $ L с ключом-значением, и если ключ существует в вашем файле strings.json, используется локализованная версия, а если нет, то указанное вами значение будет использоваться. – etlovett