Расширения и переводы Chrome - PullRequest
1 голос
/ 08 марта 2012

У меня есть расширение Chrome на английском языке, и все работает нормально.

Заглядывая в интернационализацию, я прочитал следующие сведения: http://code.google.com/chrome/extensions/i18n.html

Я создал соответствующие файлы JSON и проверилих действительность.

Теперь я пытаюсь разрешить поддержку моей страницы параметров для поддержки нескольких языков.Это просто статический HTML.

В приведенной выше ссылке сказано, что вы можете использовать формат

  __MSG_messagename__

в файлах JSON и CSS.

Можно ли использовать это вмои HTML-файлы тоже?Кажется излишним делать что-то вроде:

function getMessage() {
  var message = chrome.i18n.getMessage("click_here", ["string1", "string2"]);
  document.getElementById("languageSpan").innerHTML = message;
}

для каждой строки, которую нужно перевести!

Мои тесты показывают, что нет никакой опции, кроме установки innerHTML, что раздражает, еслистраница имеет много переводов для поддержки

Спасибо

Ответы [ 2 ]

3 голосов
/ 08 марта 2012

К сожалению, для этого нет встроенной платформы, но не сдавайтесь. Я создал тот, который позволяет вам делать именно то, что вы хотите;

https://gist.github.com/1977657#file_i18n.coffee

Я использую это в своем расширении Template , поскольку оно упрощает i18n на страницах, а также ваш исходный код. Просто вызовите i18n.init один раз, и он найдет все элементы на этой странице с атрибутами i18n и соответствующим образом их изменит, и он даже поддерживает подстановку строк с небольшой дополнительной работой.

Пример:

<a href="https://chrome.google.com/webstore/detail/dcjnfaoifoefmnbhhlbppaebgnccfddf" i18n-content="name" i18n-values=".style.direction:@@bidi_dir;title:description"></a>
<!-- Will be modified to something like this... -->
<a href="https://chrome.google.com/webstore/detail/dcjnfaoifoefmnbhhlbppaebgnccfddf" i18n-content="name" i18n-values=".style.direction:@@bidi_dir;title:description" style="direction: ltr" title="Quickly and easily copies info on the current page using a simple and unique template system">Template</a>

Для лучшего понимания я рекомендую взглянуть на сам код, но для большего количества примеров вы должны посмотреть исходный код code и HTML для моей страницы параметров.

Надеюсь, вы найдете это полезным.

2 голосов
/ 08 марта 2012

В настоящее время вы не можете использовать формат сообщения непосредственно в файлах HTML: только в своем манифесте и в файлах CSS. Однако для запроса функции открыта ошибка: вы можете отметить http://crbug.com/115800, чтобы отслеживать прогресс.

Эта ошибка замечает обходной путь (сортировка): вы можете иметь полностью отдельные файлы HTML для каждого языка. Это ужасный обходной путь, я знаю, но он есть, если вам это интересно. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...