簡體   English   中英

翻譯Android Studios中Java文件中的字符串值

[英]Translating String values that are in a Java File in Android Studios

我正在制作一個簡單的應用程序,以便在每次按下按鈕時顯示隨機事實。 我正在考慮為我的應用程序翻譯,但我不知道如何翻譯這些句子。 我的事實都位於Java類中。

這是我的Facts Java類:

String facts[] = { 
            "In some cultures' telling of Snow White, the dwarves are thieves.",
            "Sea otters hold each other's paws while sleeping so they don't drift apart.",
            "The longest attack of hiccups ever lasted 68 years.", };

我以前從未翻譯過來自Java類的句子,所以我不明白如何做到這一點。 我應該復制這些值並將它們放在strings.xml文件夾中,還是我不在正確的軌道上?

是的,您應該將它們放在xml文件中。

您可以使用StringArray

您可以從資源加載它們。

String[] facts = getContext().getResources().getStringArray(R.arrays.random_facts);

您可以本地化字符串資源以獲得不同的翻譯。

您應該使用ResourceBundle

資源包包含特定於語言環境的對象。 當您的程序需要特定於語言環境的資源(例如String ,您的程序可以從適合當前用戶的語言環境的資源包中加載它。 通過這種方式,您可以編寫程序代碼,該程序代碼在很大程度上獨立於用戶的語言環境,隔離資源包中大多數(如果不是全部)特定於語言環境的信息。

這允許您編寫可以:

  • 易於本地化或翻譯成不同的語言
  • 一次處理多個語言環境
  • 稍后可以輕松修改以支持更多語言環境

例如,使用PropertyResourceBundle並將文本放在一組屬性文件中,每種語言一個文件。

Facts_en.properties

f1=In some cultures' telling of Snow White, the dwarves are thieves.
f2=Sea otters hold each other's paws while sleeping so they don't drift apart.
f3=The longest attack of hiccups ever lasted 68 years.

Facts_da.properties

f1=I nogle kulturers fortællinger om Snehvide, er dværgene tyve.
f2=Havoddere holder hinandens poter, mens de sover, så de ikke glider fra hinanden.
f3=Den længste angreb af hikke nogensinde varede 68 år.

然后調用getBundle()來獲取事實:

ResourceBundle bundle = ResourceBundle.getBundle("Facts", Locale.ENGLISH);
String fact1 = bundle.getString("f1");

閱讀Java™教程 - 課程:隔離特定區域設置的數據以了解更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM