国际化与本地化的目的是让产品支持多个国家和区域。其中国际化是指功能和代码设计能处理多种语言和文化习俗,能够在创建不同语言版本时,不需要重新设计源程序代码。本地化是将站点按照特定国家、地区或语言市场的需要进行加工,使之满足特定用户对语言和文化的特殊要求的过程。
国际化和本地化之间的区别很微妙。国际化意味着产品有适用于任何地方的“潜力”;本地化则是为了更适合于“特定”地方的使用,而另外增加的特性。对于一个产品来说,国际化只需做一次,但本地化则要针对不同的区域各做一次。这两者之间是互补的,并且两者合起来才能让一个系统适用于各地。
- 国际化简称为
i18n
,是因为它的英文单词internationalization
的首字母i
和末尾字母n
之间有 18 个字母。 - 本地化简称为
L10n
, 是因为它的英文单词localization
的首字母l
和末尾字母n
之间有10 个字母。
1. 基本配置
LANGUAGE_CODE = 'en'
USE_I18N = True
USE_L10N = True
-
LANGUAGE_CODE
:默认语言。如果项目没有使用本地化中间件django.middleware.locale.LocaleMiddleware
,那么项目的默认语言就是LANGUAGE_CODE
指定的语言;而如果项目使用了本地化中间件,LANGUAGE_CODE
指定的语言将作为备用语言。 -
USE_I18N
:是否开启 Django 的翻译系统。如果项目不需要支持多语言,可以设为False
关闭翻译系统,以提升性能。 -
USE_L10N
:是否默认启用数据的本地化格式。主要涉及到日期格式和数字格式。