在向 Oracle Web 应用程序(基于 mod_plsql 构建)添加国际化功能时,我想解释 HTTP_ACCEPT_LANGUAGE 参数并使用它来设置 Oracle 会话中的各种 NLS_* 设置。
例如:
HTTP_ACCEPT_LANGUAGE=de
alter session set nls_territory=germany;
alter session set nls_lang=...
但是,我想你可以得到更复杂的东西......
HTTP_ACCEPT_LANGUAGE=en-us,en;q=0.5
人们以前是如何处理这种事情的?
编辑 - 以下是 Curt 的详细回答
感谢Curt清晰详细的回复。不过,我并没有真正说清楚,因为我真的在问是否有任何现有的 Oracle 小部件可以处理这个问题。
我已经在手动解析 HTTP_ACCEPT_LANGUAGE 变量的道路上,并且 - 正如 Curt 在他的回答中指出的那样 - 有一些微妙的复杂领域。感觉就像以前必须做过很多次的事情。随着我编写越来越多的代码,我有一种下沉的“我在重新发明轮子”的感觉。:)
必须有一个现有的 Oracle 方法来解决这个问题——可能在 iAS 中?
编辑 - 偶然发现了答案
在寻找其他东西时,我偶然发现了 UTL_I18N 包,这正是我所追求的: