Rumah > Java > javaTutorial > teks badan

Bagaimana untuk menangani keperluan pengantarabangsaan dalam pembangunan fungsi Java

WBOY
Lepaskan: 2023-08-05 11:03:13
asal
747 orang telah melayarinya

Cara menangani keperluan antarabangsa dalam pembangunan fungsi Java

Dengan pembukaan pasaran global dan pembangunan pengantarabangsaan, pembangunan perisian memberi perhatian yang lebih dan lebih untuk menyesuaikan diri dengan keperluan bahasa dan budaya yang berbeza. Dalam pembangunan Java, pengantarabangsaan (pendek kata i18n) telah menjadi aspek penting, dan pembangun perlu menyediakan sokongan berbilang bahasa untuk memenuhi keperluan pengguna yang berbeza. Artikel ini akan memperkenalkan cara menangani keperluan pengantarabangsaan dalam pembangunan fungsi Java dan memberikan contoh kod yang sepadan.

1. Pengurusan fail sumber

Fail sumber ialah fail yang digunakan untuk menyimpan teks dan maklumat yang sepadan dengan pelbagai bahasa. Di Java, sumber biasanya diurus menggunakan fail .properties. Untuk menampung keperluan pengantarabangsaan, kami boleh mencipta fail sumber yang sepadan untuk setiap bahasa, seperti: messages_en.properties (Bahasa Inggeris), messages_zh.properties (Bahasa Cina), dsb.

Dalam fail sumber, kami boleh menggunakan pasangan nilai kunci untuk menyimpan teks dan maklumat. Contohnya:

messages_en.properties:

button.ok=OK
button.cancel=Cancel
Salin selepas log masuk

messages_zh.properties:

button.ok=确定
button.cancel=取消
Salin selepas log masuk

Dengan memanggil kekunci dalam fail sumber, kita boleh mendapatkan teks bahasa yang sepadan, seperti:

String text = ResourceBundle.getBundle("messages").getString("button.ok");
System.out.println(text);
Salin selepas log masuk

penukaran Dinamik 2. ​​

Untuk mencapai penukaran dinamik Untuk fungsi bahasa, kita boleh menggunakan kelas Locale yang disediakan oleh Java. Kelas Tempatan digunakan untuk mewakili wilayah, negara atau kawasan tertentu.

Mula-mula, tetapkan Tempatan lalai dalam kod. Sebagai contoh, tetapkan kepada Bahasa Inggeris:

Locale.setDefault(Locale.ENGLISH);
Salin selepas log masuk

Kemudian, Tempatan boleh ditukar secara dinamik mengikut keperluan pengguna. Contohnya, mengikut bahasa yang dipilih oleh pengguna pada antara muka, tukar kepada bahasa Cina:

Locale.setDefault(Locale.CHINESE);
Salin selepas log masuk

Selepas menukar bahasa, nilai bahasa yang sepadan akan digunakan secara automatik apabila mendapatkan teks dalam fail sumber.

3. Memformat nombor dan tarikh

Dalam keperluan pengantarabangsaan, format nombor dan tarikh selalunya perlu diselaraskan. Java menyediakan kelas NumberFormat dan DateFormat untuk menangani masalah ini.

Sebagai contoh, untuk memformat nombor sebagai mata wang:

double number = 1234.56;
NumberFormat formatter = NumberFormat.getCurrencyInstance();
String formattedNumber = formatter.format(number);
System.out.println(formattedNumber);
Salin selepas log masuk

Output akan berubah berdasarkan Tempatan lalai.

4. Berurusan dengan bentuk jamak

Dalam bahasa yang berbeza, bentuk jamak akan berbeza. Java menyediakan kelas PluralRules untuk mengendalikan bentuk jamak.

Sebagai contoh, untuk mendapatkan perwakilan teks beberapa hari:

int days = 3;
PluralRules rules = PluralRules.forLocale(Locale.getDefault());
String text = rules.select(days, "{0} day", "{0} days");
System.out.println(MessageFormat.format(text, days));
Salin selepas log masuk

Hasil output akan berubah bergantung pada tempat. Apabila bilangan hari ialah 1, hasil keluaran ialah "1 hari", dan apabila bilangan hari lebih daripada 1, hasil keluaran ialah "3 hari".

5. Ringkasan contoh kod

Berikut ialah contoh kod lengkap untuk menunjukkan cara menangani keperluan pengantarabangsaan dalam pembangunan fungsi Java:

import java.text.MessageFormat;
import java.text.NumberFormat;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.spi.LocaleServiceProvider;

public class InternationalizationExample {

    public static void main(String[] args) {
        // 设置默认的Locale
        Locale.setDefault(Locale.ENGLISH);

        // 获取资源文件中的文本
        String buttonText = ResourceBundle.getBundle("messages").getString("button.ok");
        System.out.println(buttonText);

        // 切换语言为中文
        Locale.setDefault(Locale.CHINESE);

        // 获取资源文件中的文本
        buttonText = ResourceBundle.getBundle("messages").getString("button.ok");
        System.out.println(buttonText);

        // 格式化一个数字为货币形式
        double number = 1234.56;
        NumberFormat formatter = NumberFormat.getCurrencyInstance();
        String formattedNumber = formatter.format(number);
        System.out.println(formattedNumber);

        // 获取一个天数的文本表示
        int days = 3;
        PluralRules rules = PluralRules.forLocale(Locale.getDefault());
        String text = rules.select(days, "{0} day", "{0} days");
        System.out.println(MessageFormat.format(text, days));
    }
}
Salin selepas log masuk

6 Dalam pembangunan fungsi Java, keperluan pengantarabangsaan semakin banyak yang penting. Dengan mengurus fail sumber dengan betul, menukar bahasa secara dinamik, memformat nombor dan tarikh, mengendalikan bentuk jamak, dsb., kami boleh dengan mudah mengatasi keperluan persekitaran bahasa dan budaya yang berbeza. Pertimbangan tepat pada masanya dan pelaksanaan fungsi pengantarabangsaan akan membantu meningkatkan pengalaman pengguna dan daya saing pasaran perisian.

Atas ialah kandungan terperinci Bagaimana untuk menangani keperluan pengantarabangsaan dalam pembangunan fungsi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan