Bug 1053543 - [sr] the dia package has Serbian translations in Latin script in the wrong directory sr@Latn, correct is sr@latin
Summary: [sr] the dia package has Serbian translations in Latin script in the wrong di...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: dia
Version: 20
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Huzaifa S. Sidhpurwala
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-01-15 11:58 UTC by Mike FABIAN
Modified: 2014-01-16 15:54 UTC (History)
5 users (show)

Fixed In Version: dia-0.97.2-8.fc21
Clone Of:
Environment:
Last Closed: 2014-01-16 15:53:38 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Mike FABIAN 2014-01-15 11:58:52 UTC
Please move the Serbian translations in Latin script from

    /usr/share/locale/sr@Latn/LC_MESSAGES/

to

    /usr/share/locale/sr@latin/LC_MESSAGES/

Reasoning:
    
"Latn" is not the way the Latin script is spelled in glibc locales.
"Latn" is the script code according to ISO 15924

http://www.unicode.org/iso15924/iso15924-codes.html

used by CLDR and libicu.

But glibc locales spell it "latin" and "Latn" doesn’t work with gettext:

Check contents of the translation files:

    mfabian@ari:~
    $ msgunfmt /usr/share/locale/sr@Latn/LC_MESSAGES/xdg-user-dirs.mo | grep -A1 "Applications"
    msgunfmt /usr/share/locale/sr@Latn/LC_MESSAGES/xdg-user-dirs.mo | grep -A1 "Applications"
    msgid "Applications"
    msgstr "Programi"
    mfabian@ari:~
    $ msgunfmt /usr/share/locale/sr/LC_MESSAGES/xdg-user-dirs.mo | grep -A1 "Applications"
    msgunfmt /usr/share/locale/sr/LC_MESSAGES/xdg-user-dirs.mo | grep -A1 "Applications"
    msgid "Applications"
    msgstr "Програми"
    mfabian@ari:~
    $ msgunfmt /usr/share/locale/sr@latin/LC_MESSAGES/xdg-user-dirs-gtk.mo | grep -A1 "Current folder name"
    msgunfmt /usr/share/locale/sr@latin/LC_MESSAGES/xdg-user-dirs-gtk.mo | grep -A1 "Current folder name"
    msgid "Current folder name"
    msgstr "Trenutno ime"
    mfabian@ari:~
    $ msgunfmt /usr/share/locale/sr/LC_MESSAGES/xdg-user-dirs-gtk.mo | grep -A1 "Current folder name"
    msgunfmt /usr/share/locale/sr/LC_MESSAGES/xdg-user-dirs-gtk.mo | grep -A1 "Current folder name"
    msgid "Current folder name"
    msgstr "Тренутно име"
    mfabian@ari:~
    $ 

Correct.

Check whether the
/usr/share/locale/sr@latin/LC_MESSAGES/xdg-user-dirs-gtk.mo
translations can be retrieved with gettext using the @latin modifier:

    mfabian@ari:~
    $ LC_ALL=sr_RS@latin gettext -d xdg-user-dirs-gtk "Current folder name"
    LC_ALL=sr_RS@latin gettext -d xdg-user-dirs-gtk "Current folder name"
    Trenutno imemfabian@ari:~
    $ LC_ALL=sr_RS.UTF-8@latin gettext -d xdg-user-dirs-gtk "Current folder name"
    LC_ALL=sr_RS.UTF-8@latin gettext -d xdg-user-dirs-gtk "Current folder name"
    Trenutno imemfabian@ari:~
    $ LC_ALL=sr_RS.UTF-8 gettext -d xdg-user-dirs-gtk "Current folder name"
    LC_ALL=sr_RS.UTF-8 gettext -d xdg-user-dirs-gtk "Current folder name"
    Тренутно имеmfabian@ari:~
    $ 
    
Works, with @latin one gets the Serbian translation in latin script,
without @latin the Cyrillic ones.

Now check whether the /usr/share/locale/sr@Latn/LC_MESSAGES/xdg-user-dirs.mo
translations can be retrieved with gettext using the @latin or the @Latn
modifier:

    mfabian@ari:~
    $ LC_ALL=sr_RS.UTF-8@latin gettext -d xdg-user-dirs "Applications"
    LC_ALL=sr_RS.UTF-8@latin gettext -d xdg-user-dirs "Applications"
    Програмиmfabian@ari:~
    $ LC_ALL=sr_RS@latin gettext -d xdg-user-dirs "Applications"
    LC_ALL=sr_RS@latin gettext -d xdg-user-dirs "Applications"
    Програмиmfabian@ari:~
    $ 

So it doesn’t work with "@latin" because the "sr@Latn" directory is
mistakenly used, we get the fallback to Cyrillic instead.
sr_RS@latin and sr_RS.UTF-8@latin are valid locales, so if a suitable
folder containing the @latin cannot be found, gettext falls back to
the "sr" folder which exists and contains Cyrillic.

Now trying with @Latn:

    mfabian@ari:~
    $ LC_ALL=sr_RS.UTF-8@Latn gettext -d xdg-user-dirs "Applications"
    LC_ALL=sr_RS.UTF-8@Latn gettext -d xdg-user-dirs "Applications"
    Applicationsmfabian@ari:~
    $ LC_ALL=sr_RS@Latn gettext -d xdg-user-dirs "Applications"
    LC_ALL=sr_RS@Latn gettext -d xdg-user-dirs "Applications"
    Applicationsmfabian@ari:~
    $ 

We get the fallback to English beause sr_RS.UTF-8@Latn and sr_RS@Latn
are not valid glibc locales. sr_RS.UTF-8@latin and sr_RS@latin
are OK:

    mfabian@ari:~
    $ LC_ALL=sr_RS.UTF-8@latin locale charmap
    LC_ALL=sr_RS.UTF-8@latin locale charmap
    UTF-8
    mfabian@ari:~
    $ LC_ALL=sr_RS@latin locale charmap
    LC_ALL=sr_RS@latin locale charmap
    UTF-8
    mfabian@ari:~

But sr_RS.UTF-8@Latn and sr_RS@Latn are not valid:

    mfabian@ari:~
    $ LC_ALL=sr_RS.UTF-8@Latn locale charmap
    LC_ALL=sr_RS.UTF-8@Latn locale charmap
    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_MESSAGES to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    ANSI_X3.4-1968
    mfabian@ari:~
    $ LC_ALL=sr_RS@Latn locale charmap
    LC_ALL=sr_RS@Latn locale charmap
    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_MESSAGES to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    ANSI_X3.4-1968
    mfabian@ari:~
    $

Comment 1 Mike FABIAN 2014-01-15 12:00:16 UTC
$ rpm -ql dia | grep  sr@
/usr/share/locale/sr@Latn/LC_MESSAGES/dia.mo
$ rpm -q dia
dia-0.97.2-7.fc20.x86_64

Comment 2 Jiri Popelka 2014-01-16 15:53:38 UTC
Fixed (patch by Jaromír Končický) in
dia-0.97.2-8.fc21 (http://koji.fedoraproject.org/koji/taskinfo?taskID=6415788)
dia-0.97.2-8.fc20 (http://koji.fedoraproject.org/koji/taskinfo?taskID=6415800)


Note You need to log in before you can comment on or make changes to this bug.