当我们的程序可能会有其他语言使用者时,就得开始考虑国际化的问题了,专业术语叫i18n:
i n t e r n a t i o n a l i z a t i o n
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
在Java中可以透过ResourceBundle来达到这个目的,让程序中要显示的字元可以透过.properties档案进行动态抽换:
messages_zh_TW.properties:
com.ironman13th.welcome=哈罗
com.ironman13th.guest=世界
Java9开始可以直接写中文字在properties档案,但是Java8以前需要转换成unicode。
Java里面这样写:
Locale locale = new Locale("zh", "TW");
ResourceBundle rb = ResourceBundle.getBundle("messages", locale);
String welcome = rb.getString("com.ironman13th.welcome");
String guest = rb.getString("com.ironman13th.guest");
System.out.println(welcome + "! " + guest + "!");
若在拿ResourceBundle没有给locale物件的话,背後会呼叫Locale.getDefault()取得预设的地区,就看系统预设的地区是什麽了。
所以透过定义出各种messages_(language code)_(Region code).properties的档案,在程序中就可以动态抽换想显示的字元了。
<<: 追求JS小姊姊系列 Day27 -- 从哪里BOM出来的青梅竹马!
>>: Day 29 : 撰写LineBot,利用短短三天认识自动化机器人(下)
前17天中,我们快速的Review了Vue的用法,紧接着开始我们的专案实战罗! 这次要来实作的专案是...
前言 既然是要来复习资料库的应用,那我们就以利用资料库结合C#做一个小程序为终极目标从头一步一步来为...
前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...
继续建构专案 ...
补齐遗失副本,时间线回归。 本文同步发表於个人网站 Hello, Lua & C 现在,我...