乐闻世界logo
搜索文章和话题

How to allow usage of underscore in i18n?

1个答案

1

In the process of internationalization (i18n), we typically need to handle different language and region identifiers. In some cases, underscores (_) are used in identifiers to distinguish language codes from country/region codes, for example, zh_CN represents Simplified Chinese for China.

However, in certain programming frameworks or libraries, such as Java's Locale class or some web frameworks, standard language identifiers may use hyphens (-) instead of underscores, for example, zh-CN. In such cases, if we need to allow underscores in the system, we can adopt the following strategies:

1. Character Replacement

When processing language identifiers, we can write a simple function to replace underscores with hyphens. This ensures compliance with standards during internal processing while remaining compatible with external inputs.

Example:

java
public String normalizeLocale(String locale) { return locale.replace('_', '-'); }

2. Mapping Table

If specific language-region combinations require special handling, we can use a mapping table (HashMap) to map these cases.

Example:

java
Map<String, String> localeMap = new HashMap<>(); localeMap.put("zh_CN", "zh-CN"); localeMap.put("en_US", "en-US"); public String getStandardLocale(String locale) { return localeMap.getOrDefault(locale, locale.replace('_', '-')); }

3. Configure Framework or Library

Check if the framework or library you are using has configuration options that allow underscores. Some frameworks permit altering the default behavior through configuration.

4. User Education

If modifying the system behavior is not feasible, consider educating users through documentation or other means to inform them how to correctly input or select language identifiers.

Summary

Handling the issue of underscores and hyphens primarily involves understanding and configuring your toolchain (programming languages, frameworks, libraries) for internationalization identifiers. Then, choose appropriate methods to adapt or convert these identifiers based on your specific situation to ensure smooth internationalization efforts.

2024年7月19日 17:16 回复

你的答案