Day29:翻译蒟蒻

当我们的程序可能会有其他语言使用者时,就得开始考虑国际化的问题了,专业术语叫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,利用短短三天认识自动化机器人(下)

Day 17 - 专案实战-记帐系统

前17天中,我们快速的Review了Vue的用法,紧接着开始我们的专案实战罗! 这次要来实作的专案是...

Day 01 - 从头开始

前言 既然是要来复习资料库的应用,那我们就以利用资料库结合C#做一个小程序为终极目标从头一步一步来为...

Day 1 - JavaScript Drum Kit

前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...

继续建构专案

继续建构专案 ...

【30天Lua重拾笔记30】进阶议题: 与C交互(+Python)

补齐遗失副本,时间线回归。 本文同步发表於个人网站 Hello, Lua & C 现在,我...