B.6. 以多种语言存储信息
如果目录包含单一语言,则不需要进行任何特殊操作来向该目录添加新条目。但是,如果一个机构是多语言的,则可能需要以多种语言存储信息,以便不同区域的用户可以使用自己的语言查看目录信息。
当目录中的信息以多种语言表示时,服务器会将语言标签与属性值相关联。添加新条目时,在没有语言代码的情况下,必须提供 RDN 中使用的属性值(相对区分名称,即 naming 属性)。
可以为单个属性存储多个语言。在这种情况下,属性类型相同,但每个值都有不同的语言代码。
有关目录服务器支持的语言列表及其关联的语言标签,请参阅 第 D.2 节 “支持的区域设置”。
注意
语言标签不影响在目录中存储字符串的方式。所有对象类和属性字符串都使用 UTF-8 存储。用户负责将 LDIF 中使用的数据转换为 UTF-8。大多数操作系统提供的 iconv 或 uconv 命令可用于将数据从原生字符集转换为 UTF-8。
例如,公司在美国和加拿大方面拥有办公室,希望员工能够以其原生语言查看目录信息。添加目录条目时,目录管理员选择在英语和法语中提供属性值。当为新员工添加目录条目 Babs Jensen 时,管理员执行以下操作:
- 管理员创建一个文件
street.txt
,其带有法语 street 地址值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 1 rue de l'Université
1 rue de l'Université
- 然后,文件内容转换为 UTF-8: :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow iconv -t UTF-8 -o output.txt street.txt
# iconv -t UTF-8 -o output.txt street.txt
- 以下 LDIF 条目是使用 street
Address 的 street address 值的 UTF-8 值创建的;lang-fr
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow dn: uid=bjensen,ou=people,dc=example,dc=com objectclass: top objectclass: person objectclass: organizationalPerson name: Babs Jensen cn: Babs Jensen sn: Jensen uid: bjensen streetAddress: 1 University Street streetAddress;lang-en: 1 University Street streetAddress;lang-fr:: AasljdoaAJASI023909jaASJaonasd0ADS preferredLanguage: fr
dn: uid=bjensen,ou=people,dc=example,dc=com objectclass: top objectclass: person objectclass: organizationalPerson name: Babs Jensen cn: Babs Jensen sn: Jensen uid: bjensen streetAddress: 1 University Street streetAddress;lang-en: 1 University Street streetAddress;lang-fr:: AasljdoaAJASI023909jaASJaonasd0ADS preferredLanguage: fr
属性 name 和 subtype 后双冒号表示该值采用二进制 base-64 编码。
使用设置为 English 的 LDAP 客户端访问此目录条目的用户会看到地址 1 发行者。使用首选语言设置为法语的 LDAP 客户端访问目录的用户会看到地址 1 rue de l'Université。