1

我試圖實現國際化支持我的項目爲這個人建議谷歌關閉模板。但是對於模板非常新。封閉模板試圖獲得語言特定的消息但沒有獲得xlf文件。如果任何人知道如何使用閉包模板生成特定於語言的消息,請告訴我步驟,這對我很有幫助。如何使用谷歌封閉模板獲取語言特定的消息

我的.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> 

回答

1

我看到你已經使用SoyMsgExtractor來創建基本的xlf。接下來,你需要將這個基本的xlf翻譯成你想要支持的語言。爲每種語言創建一個文件。我使用了Translution的xliff exitor。 http://sourceforge.net/projects/eviltrans

接下來,使用SoyToJsSrcCompiler翻譯大豆可以每種語言進行:

Java的罐子SoyToJsSrcCompiler.jar --shouldGenerateGoogMsgDefs --bidiGlobalDir 1 --messageFilePathFormat Filename_en-us.xliff --outputPathFormat FileName_fr.js * .soy

這將創建一個Filename._fr.js文件,其中包含已編譯的大豆文件。

包含此文件而不是原始大豆(或編譯)將創建一個本地化的版本。

祝你好運!

\勒內

0

我認爲最簡單的方法是使(即,從任何來源產生),其包含一個消息對象,並通過一個外部引用它一個單獨的JS文件聲明的函數。

它只是工作,並沒有複雜的依賴關係。

相關問題