我正在寫一個應用程序,它顯示所有菜單和所有應用程序的英文和西班牙文文本。 任何人都可以告訴我如何解決這個問題。我能做的一件事就是將所有文本轉換成西班牙語,當選擇西班牙語語言時,有任何內置的android功能可將所有文本轉換爲選定語言。android中的本地化
0
A
回答
1
- 創建文件夾,價值-ES(西班牙)
- 創建的strings.xml文件西班牙語
我想你在第二個屏幕按鈕更改語言,添加以下代碼按鈕單擊
String language ="es"; Locale locale = null; if (language.equalsIgnoreCase("en")) { locale = new Locale("en"); } else if (language.equalsIgnoreCase("es")) { locale = new Locale("es"); } Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, null);
如果要更改動態語言,那麼你甘蔗調用的OnCreate(空)
謝謝你,
0
if你將所有的字符串存儲在strings.xml中(int值文件夾),你可以創建語言修飾符。而當你參考字符串而不是:
String name =「name」;
您可以:
字符串名稱=的getString(R.string.name);
下面是文檔: http://developer.android.com/guide/topics/resources/string-resource.html
1
你必須把字符串中的資源文件,這是right in the tutorial。
0
本地化:
在此開發者需要爲不同的區域設置不同的值的文件夾objects.each值文件夾中包含了自己的strings.xml文件(串),colors.xml文件(用於顏色)。在那個值文件夾開發者必須提供特定的語言數據(歡迎消息就像用不同的語言,他想要什麼) 當本地化被改變時選擇適當的資源(使用模擬器設置首頁 - >菜單 - >設置 - > 語言&鍵盤 - >選擇語言)
1
創建不同的資源文件夾來處理本地化。例如,對於西班牙文cretae文件夾,名稱分別爲value-es
和value-en
英文版將文件夾中的所有字符串與同名文件夾中的Strings.xml文件保存在一起,只存在值不同於西班牙文和英文版。
您可以以同樣的方式訪問字符串,你通常幹什麼用getString(R.string.name);
0
類本地化:
package com.org.net;
import android.util.Log;
import java.util.Map;
import java.util.HashMap;
enum Languages {
lnEn, lnRu;
}
public class $ {
private static volatile $ instance;
private static $ getInstance() {
$ localInstance = instance;
if (localInstance == null) {
synchronized ($.class) {
localInstance = instance;
if (localInstance == null) {
instance = localInstance = new $();
}
}
}
return localInstance;
}
public static String $(String key) {
String[] value = getInstance().map.get(key);
if (value != null) {
return value[ getInstance().lang.ordinal() ];
} else {
Log.e("translate", "not found translate: " + "map.put(\"" + key + "\", new String[] {\"" + key + "\"});\n");
return key;
}
}
public static void defaultLang() {
String lang = Locale.getDefault().getLanguage();
if (lang.equals("ru")) {
$.setLang(Languages.lnRu);
} else {
$.setLang(Languages.lnEn);
}
}
public static void setLang(Languages lang) {
getInstance().lang = lang;
}
private Languages lang;
private Map<String, String[]> map;
private $() {
lang = Languages.lnEn;
map = new HashMap<String, String[]>();
map.put("Hello", new String[] {
"Hello",
"Привет",
});
map.put("Translate it", new String[] {
"Translate it",
"Переведи это",
});
boolean success = true;
for (Map.Entry<String, String[]> entry : map.entrySet()) {
String[] value = entry.getValue();
if (value.length != Languages.values().length) {
Log.e("translate", "not found translate: " + entry.getKey());
success = false;
}
}
if (! success) {
throw new RuntimeException("not found translate");
}
}
}
用途:
// $.defaultLang() or $.setLang(Languages.lnRu) for select language
button.setText($.$("Hello"));
實用程序搜索字符串in code(php):
<?
$h1 = opendir('code/');
if ($h1 === false) {
return;
}
$files = array();
while (false !== ($file = readdir($h1))) {
if ($file != "." && $file != "..") {
if ($file == "$.java") {
continue;
}
$files[] = 'code/'.$file;
}
}
closedir($h1);
sort($files);
$word_count = 0;
$inquotes_str = "";
$translate_str = "";
$map_fill_str = "";
foreach ($files as $file) {
$contents = file_get_contents($file);
$matches = null;
preg_match_all('/(["\'])(?:\\\\\1|(?!\1).)+\1/', $contents, $matches);
foreach($matches[0] as $line) {
$inquotes_str .= "{$line}\n";
}
$matches = null;
preg_match_all('/\$\.\$\(\s*".*?"\s*\)/', $contents, $matches);
foreach($matches[0] as $line) {
preg_match('/".*"/', $line, $line);
$line = $line[0];
$translate_str .= "{$line}\n";
$word_count += str_word_count($line);
$map_fill_str .= <<< EOF
map.put({$line}, new String[] {
{$line},
});
EOF;
}
}
file_put_contents("inquotes_str.txt", $inquotes_str);
file_put_contents("translate_str.txt", $translate_str);
file_put_contents("map_fill_str.txt", $map_fill_str);
echo "{$word_count}\n";
?>
相關問題
- 1. Android Studio中的本地化
- 2. Android中的本地化值
- 3. 本地化的Android
- 4. Android中文本的本地化
- 5. Android中的俄文本地化版本
- 6. 本地化Android DatePickerDialog
- 7. 本地化的Android的EditText
- 8. Mono Android上的本地化
- 9. 瞭解R.java和Android中的本地化
- 10. android應用中的本地化
- 11. Xamarin Android中的本地化C#
- 12. Android中的字符串本地化
- 13. Android中的可本地化資產
- 14. MonkeyTalk支持Android中的本地化嗎?
- 15. android中的本地化設計模式
- 16. Android中的多語言本地化
- 17. Android泰國本地化
- 18. Android本地化/翻譯
- 19. Android本地化xml文件
- 20. android語言本地化
- 21. Android本地化es-r419
- 22. Android本地化資源
- 23. Android本地化問題
- 24. 如何本地化Android DatePicker?
- 25. Android本地化錯誤
- 26. Android限制本地化
- 27. 在Android中本地化時間
- 28. 使用NDK在Android上進行本地化/本地化
- 29. Android的本地化的JSON文件
- 30. 刪除android上的本地化
http://developer.android.com/guide/topics/resources/localization.html – 2011-12-30 07:08:34
可能的重複[如何實現Android l10n?](http://stackoverflow.com/questions/1152839/how-to - 實施 - Android的本地化) – 2011-12-30 07:11:34