[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: