Как получить сообщения на конкретном языке с помощью шаблона закрытия Google

Я пытаюсь внедрить поддержку интернационализации в свой проект, для этого люди предложили Google Closure Templates. но я очень новичок в шаблонах закрытия. создавайте сообщения для конкретного языка, используя шаблон закрытия, пожалуйста, расскажите мне шаги. это мне очень помогло.

Мой код файла .soy, как показано ниже.

{namespace poc} 
/** 
*Testing message translation 
*@param pageTitle 
*/ 
{template .translate} 
<HTML> 
<Head> 
<title>{$pageTitle} 
</title> 
</head> 
<div> 
{msg desc="Hello"}Hello{/msg} 
</div> 
</html> 
{/template} 

and generated .xlf content as bellow 

<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file original="SoyMsgBundle" datatype="x-soy-msg-bundle" xml:space="preserve" source-language="en" target-language="pt-BR">
    <body>
      <trans-unit id="2286494898080570401" datatype="html">
        <source>Thanks</source>
        <target/>
        <note priority="1" from="description">Says thanks</note>
      </trans-unit>
    </body>
  </file>
</xliff>

person user1633518    schedule 10.09.2012    source источник


Ответы (2)


Я вижу, вы уже использовали SoyMsgExtractor для создания базового xlf. Затем вам нужно сделать переводы этого базового xlf на языки, которые вы хотите поддерживать. Создается файл для каждого языка. Я использовал xliff exitor от Translution. http://sourceforge.net/projects/eviltrans.

Затем, используя SoyToJsSrcCompiler, можно сделать перевод для каждого языка:

java -jar SoyToJsSrcCompiler.jar --shouldGenerateGoogMsgDefs --bidiGlobalDir 1 --messageFilePathFormat Filename_en-us.xliff --outputPathFormat FileName_fr.js *.soy

Это создаст файл Filename._fr.js, содержащий скомпилированный файл soy.

Включение этого файла вместо исходного соевого (или скомпилированного) создаст локализованную версию.

Удачи!

\Рене

person rzeldent    schedule 12.09.2012

я думаю, что самый простой способ - создать (т.е. сгенерировать из любого источника) отдельный файл js, который содержит один объект сообщений, и ссылаться на него через объявленную функцию extern.

он просто работает и не имеет сложных зависимостей.

person marco    schedule 19.09.2012