Bug#657511: locales: Correct transliteration rules for nb_NO and nn_NO locales
Package: locales
Version: 2.11.2-10
Tags: patch
Severity: important
User: debian-edu@lists.debian.org
Usertags: debian-edu
I discovered this while investigating a solution for #657086. The
problem is that the transliteration rules for nb_NO (and perhaps also
the general rules are incomplete and wrong. This causes bogus gecos and
user names to be generated in GOsa. This is what I get at the moment:
% echo ÆØÅæøå | iconv -t ASCII//TRANSLIT
AE?Aae?a
%
This is what I expect:
% echo ÆØÅæøå | iconv -t ASCII//TRANSLIT
AeOeAaaeoeaa
%
In /usr/share/i18n/locales/nb_NO, I find this block:
translit_start
include "translit_combining";""
translit_end
This surprised me, as the original nb_NO locale in GNU libc look like
this and I knew this from when I worked on glibc locales:
translit_start
include "translit_combining";""
% Norwegian transliteration
% LATIN CAPITAL LETTER A WITH RING ABOVE -> "Aa"
<U00C5> "<U0041><U030A>";"<U0041><U0061>"
% LATIN SMALL LETTER A WITH RING ABOVE -> "aa"
<U00E5> "<U0061><U030A>";"<U0061><U0061>"
% LATIN CAPITAL LETTER O WITH STROKE -> "Oe"
<U00D8> "<U004F><U0338>";"<U004F><U0065>"
% LATIN SMALL LETTER O WITH STROKE -> "oe"
<U00F8> "<U006F><U0338>";"<U006F><U0065>"
% LATIN CAPITAL LETTER AE -> "Ae"
<U00C6> "<U0041><U0065>"
% LATIN SMALL LETTER AE -> "ae"
<U00E6> "<U0061><U0065>"
translit_end
This adjustment to the transliteration rules seem to have been lost when
switching from glibc to eglibc.
Please apply this patch to the nb_NO locale, to at least get correct
transliteration with nb_NO and nn_NO locales.
--- /usr/share/i18n/locales/nb_NO 2011-01-23 21:25:44.000000000 +0100
+++ /tmp/nb_NO.new 2012-01-26 19:04:18.000000000 +0100
@@ -127,6 +127,21 @@
translit_start
include "translit_combining";""
+
+% Norwegian transliteration
+% LATIN CAPITAL LETTER A WITH RING ABOVE -> "Aa"
+<U00C5> "<U0041><U030A>";"<U0041><U0061>"
+% LATIN SMALL LETTER A WITH RING ABOVE -> "aa"
+<U00E5> "<U0061><U030A>";"<U0061><U0061>"
+% LATIN CAPITAL LETTER O WITH STROKE -> "Oe"
+<U00D8> "<U004F><U0338>";"<U004F><U0065>"
+% LATIN SMALL LETTER O WITH STROKE -> "oe"
+<U00F8> "<U006F><U0338>";"<U006F><U0065>"
+% LATIN CAPITAL LETTER AE -> "Ae"
+<U00C6> "<U0041><U0065>"
+% LATIN SMALL LETTER AE -> "ae"
+<U00E6> "<U0061><U0065>"
+
translit_end
END LC_CTYPE
--
Happy hacking
Petter Reinholdtsen
Reply to: