2013-04-19 29 views
1

這裏有一個讓我瘋狂的:Appcelerator鈦國際化不能正常工作

我最近開始關注Appcelerator Titanium。我已經用一個普通的項目和使用Alloy構建了一些小應用程序,所以我至少了解基礎知識。

我只是不能工作的一件事是i18n文件夾/文件。

這裏是香港專業教育學院做了什麼: - 創建一個「默認項目」 - 添加文件夾的根目錄「國際化」 - 添加「恩」和「ES」文件夾「國際化」 - 添加「的strings.xml 「到這兩個新文件夾。 - 補充說:

<?xml version="1.0" encoding="UTF-8"?> 
    <resources> 
     <string name="welcome_message">Welcome TEST</string> 
    </resources> 

到兩個strings.xml中,除了在ES字符串我把 「ES歡迎TEST」。 - 在資源 - > app.js我改變了「我是窗口1」到L(「WELCOME_MESSAGE」) - 運行應用程序

正常和合金版本只顯示一個空白屏幕。我想讓我的合金應用程序工作得最多,但從我所瞭解的本地化代碼應該在兩個應用程序中都一樣。在合金中,我可能只需要把它放在風格中。

任何指針都會很棒!我看了其他文章聲稱它不工作,但他們都是語法錯誤或只是設置錯誤。我已經複製他們的代碼,並有與它不完全相同的問題,所以我有一種感覺,我錯過了一個新手一步。下面是一些截圖,我剛剛創建了一個全新的普通(不是合金)項目,添加了上面的代碼並嘗試使用L('welcome_message')來運氣不佳。我試着在新電腦上安裝所有東西,以確保我沒有在主電腦上搞亂任何東西。 enter image description here enter image description here

+0

你嘗試清潔和構建? –

+0

我試過了,以及試圖創建一個像上面提到的空白項目,添加代碼,然後運行它的第一次和相同的結果。 – Silent

回答

2

繼承人的答案:

https://wiki.appcelerator.org/display/guides/Internationalization

默認情況下結束了你的清單文件沒有設置默認情況下,允許本地化,除非您選擇一個選項卡項目。

有點傻,如果你問我。

+0

即使在閱讀指南後,它也不起作用。我已經創建了i18n文件夾和strings.xml,並聲明瞭L('password'),它使用戶界面在模擬器上留空以進行翻譯。 – obaid

0

關於主題海報:

我的新string.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
    <string name="welcome_message">Don't Help Austin</string> 
    <string name="user_agent_message">user agent set to</string> 
    <string name="format_test">Your name is %s</string> 
    <string name="base_ui_title">Base UI</string> 
    <string name="controls_win_title">Controls</string> 
    <string name="phone_win_title">Phone</string> 
    <string name="platform_win_title">Platform</string> 
    <string name="mashups_win_title">Mashups</string> 
    <string name="ordered">Hi %1$s, my name is %2$s</string> 
</resources> 

我的非合金實驗的截圖:

enter image description here

對於那些期待回答主題中的問題,下面是一個可能的答案。

我的i18n文件夾與應用程序和插件位於同一層級,因此我的應用程序文件夾不在合金資源的其餘部分。

INDEX.XML

<Alloy> 
    <Window class="container"> 
     <Label id="label" onClick="doClick"></Label> 
    </Window> 
</Alloy> 

index.tss

".container": { 
    backgroundColor:"white" 
}, 
"Label": { 
    width: Ti.UI.SIZE, 
    height: Ti.UI.SIZE, 
    color: "#000", 
    text: L("welcome_message") 
} 

的strings.xml

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
    <string name="welcome_message">Welcome to Kitchen Sink for Titanium</string> 
    <string name="user_agent_message">user agent set to</string> 
    <string name="format_test">Your name is %s</string> 
    <string name="base_ui_title">Base UI</string> 
    <string name="controls_win_title">Controls</string> 
    <string name="phone_win_title">Phone</string> 
    <string name="platform_win_title">Platform</string> 
    <string name="mashups_win_title">Mashups</string> 
    <string name="ordered">Hi %1$s, my name is %2$s</string> 
</resources> 

當我放置在L( 「WELCOME_MESSAGE」)的內部INDEX.XML,它沒有工作。

+0

我喜歡你的幽默感:)但是你發佈的答案不能幫助我解決我的具體問題。你發佈的內容來自許多指南,我可以從github直接加載項目,運行它們並且它們也不工作。多數民衆贊成在今晚嘗試。在eclipse中是否需要設置一個設置,或者在模擬器管理器中? – Silent

+0

@Martin你說過「當我將L(」welcome_message「)放入index.xml中時,它不起作用。」這是問題還是答案?因爲我在合金項目中也需要它的解決方案,因爲它不起作用 – obaid

+0

您是否按照原始海報詳細描述了步驟? 「這就是我所做的: - 創建一個」默認項目「 - 將文件夾添加到根目錄」i18n「 - 將」en「和」es「文件夾添加到」i18n「 - 將」strings.xml「添加到這兩個新文件夾」 – Martin