Bugzilla – Attachment 26691 Details for
Bug 12017
Move language description out of database
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 12017 - Move language description out of database
Bug-12017---Move-language-description-out-of-datab.patch (text/plain), 40.13 KB, created by
Bernardo Gonzalez Kriegel
on 2014-03-30 05:04:56 UTC
(
hide
)
Description:
Bug 12017 - Move language description out of database
Filename:
MIME Type:
Creator:
Bernardo Gonzalez Kriegel
Created:
2014-03-30 05:04:56 UTC
Size:
40.13 KB
patch
obsolete
>From 93b623b7e5b7dac864e19162c02922c3a89f52a0 Mon Sep 17 00:00:00 2001 >From: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> >Date: Sat, 29 Mar 2014 22:26:28 -0300 >Subject: [PATCH] Bug 12017 - Move language description out of database > >This patch moves language descriptions from database >into template files, to ease the translation process. > >As pointed out on comment #5 of Bug 9056 [1], present >implementation needs many queries to database, and >more important, it's very difficult to scale so that >every language could properly name any other language. > >So, at the cost of loose some native descriptions, >that can be added or replace english ones, I propose >to use only the rfc4646 subtag (it's in the name of >translation files or translated directories) to find >the proper name for language/region/script using >blocks of template files > >It's more work for translators > >To test: >1) Do some fake translations, for example all langs >for l in $(cd misc/translator/po; ls *-pref.po | sed 's/-pref.po//'); do >mkdir koha-tmpl/intranet-tmpl/prog/$l; >mkdir koha-tmpl/opac-tmpl/bootstrap/$l; >mkdir koha-tmpl/opac-tmpl/prog/$l; >mkdir koha-tmpl/opac-tmpl/ccsr/$l; >done > >2) Go to Administration > System preferences > I18N/L10N >Preety mess! > >3) Enable some random languages, some in groups (fr|en) >on staff/opac. Enable OPAC changelanguage > >4) Reload page, look at the bottom for language changer >Also open a OPAC view, look for language changer >Do NOT change languages > >5) Apply the patch > >6) Reload STAFF page, some cosmetic changes on lang display >and language changer > >7) Reload OPAC page, similar view of language changer > >8) Change OPAC theme (prog|ccsr) and check again >On prog and ccsr the result is not preety, but works > >9) Now to business: Translations. Update language files for >one of the active languages, say de-DE >(cd misc/translator; perl translate update de-DE; >perl translate update de-DE; perl translate install de-DE) > >10) Change language to German (DE), reload STAFF page, >some of the strings are already translated!!! > >11) Check that there are many references to 'language.inc' >files on PO files >egrep "language.inc" misc/translator/po/de-DE-*po > >12) Sign! > >Note: I'm imposing a sort order on results, by subtag, >that could slow things a little (almos nothing if there >are few languages). Could be removed. > >Note2: I put every string between it's own <span></span> >In that way each string is taken individually to translate >instead of a solitary line filled with '%s' > >Note3: Of course if this pass it needs a lot of followups >to eventually remove language tables, but that needs >more analysis, there are more funcions on C4/Languages.pm >that use the tables. But it's a first step. > >Also more followups are needed to update or complete >languages/regions/scripts > >[1] http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=9056#c5 >--- > C4/Languages.pm | 5 - > .../prog/en/includes/doc-head-close.inc | 2 + > .../prog/en/includes/intranet-bottom.inc | 24 ++--- > .../intranet-tmpl/prog/en/includes/language.inc | 114 ++++++++++++++++++++ > .../prog/en/modules/admin/preferences.tt | 10 +- > .../bootstrap/en/includes/doc-head-close.inc | 2 + > .../opac-tmpl/bootstrap/en/includes/language.inc | 114 ++++++++++++++++++++ > .../bootstrap/en/includes/opac-bottom.inc | 18 ++-- > .../opac-tmpl/ccsr/en/includes/doc-head-close.inc | 2 + > .../opac-tmpl/ccsr/en/includes/opac-bottom.inc | 12 +-- > .../opac-tmpl/prog/en/includes/doc-head-close.inc | 3 + > koha-tmpl/opac-tmpl/prog/en/includes/language.inc | 114 ++++++++++++++++++++ > .../opac-tmpl/prog/en/includes/opac-bottom.inc | 12 +-- > 13 files changed, 388 insertions(+), 44 deletions(-) > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/language.inc > create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/includes/language.inc > create mode 100644 koha-tmpl/opac-tmpl/prog/en/includes/language.inc > >diff --git a/C4/Languages.pm b/C4/Languages.pm >index 2a74b92..df7efd8 100644 >--- a/C4/Languages.pm >+++ b/C4/Languages.pm >@@ -316,10 +316,6 @@ sub _build_languages_arrayref { > # group this language, key by langtag > $language_subtags_hashref->{'sublanguage_current'} = 1 if $translated_language eq $current_language; > $language_subtags_hashref->{'rfc4646_subtag'} = $translated_language; >- $language_subtags_hashref->{'native_description'} = language_get_description($language_subtags_hashref->{language},$language_subtags_hashref->{language},'language'); >- $language_subtags_hashref->{'script_description'} = language_get_description($language_subtags_hashref->{script},$language_subtags_hashref->{'language'},'script'); >- $language_subtags_hashref->{'region_description'} = language_get_description($language_subtags_hashref->{region},$language_subtags_hashref->{'language'},'region'); >- $language_subtags_hashref->{'variant_description'} = language_get_description($language_subtags_hashref->{variant},$language_subtags_hashref->{'language'},'variant'); > $track_language_groups->{$language_subtags_hashref->{'language'}}++; > push ( @{ $language_groups->{$language_subtags_hashref->{language}} }, $language_subtags_hashref ); > } >@@ -335,7 +331,6 @@ sub _build_languages_arrayref { > push @languages_loop, { > # this is only use if there is one > rfc4646_subtag => @$value[0]->{rfc4646_subtag}, >- native_description => language_get_description($key,$key,'language'), > language => $key, > sublanguages_loop => $value, > plural => $track_language_groups->{$key} >1 ? 1 : 0, >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc >index 11f6f38..b6f0553 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/doc-head-close.inc >@@ -20,6 +20,8 @@ > <link rel="stylesheet" type="text/css" href="[% themelang %]/css/login.css" /> > [% END %] > >+[% PROCESS 'language.inc' %] >+ > <!-- koha core js --> > <script type="text/javascript" src="[% themelang %]/js/staff-global.js"></script> > [% INCLUDE 'validator-strings.inc' %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/intranet-bottom.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/intranet-bottom.inc >index ed1298c..069abf3 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/intranet-bottom.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/intranet-bottom.inc >@@ -5,18 +5,20 @@ > <div id="changelanguage" class="navbar navbar-fixed-bottom"> > <div class="navbar-inner"> > <ul id="i18nMenu" class="nav"> >- [% FOREACH languages_loo IN languages_loop %] >+ [% FOREACH languages_loo IN languages_loop.sort('rfc4646_subtag') %] > > [% IF ( languages_loo.group_enabled ) %] > [% IF ( languages_loo.plural ) %] >- <li class="dropdown"><a class="dropdown-toggle dropup" data-toggle="dropdown" id="show[% languages_loo.rfc4646_subtag %]" href="#">[% languages_loo.native_description %] ([% languages_loo.rfc4646_subtag %]) <span class="caret"></span></a> >+ <li class="dropdown"> >+ <a class="dropdown-toggle dropup" data-toggle="dropdown" id="show[% languages_loo.rfc4646_subtag %]" href="#"> >+ [% PROCESS lang_getname subtag = languages_loo.rfc4646_subtag %]<span class="caret"></span></a> > <ul id="sub[% languages_loo.rfc4646_subtag %]" class="dropdown-menu"> >- [% FOREACH sublanguages_loo IN languages_loo.sublanguages_loop %] >+ [% FOREACH sublanguages_loo IN languages_loo.sublanguages_loop.sort('rfc4646_subtag') %] > [% IF ( sublanguages_loo.enabled ) %] > [% IF ( sublanguages_loo.sublanguage_current ) %] >- <li> <a href="#">[% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %] ([% sublanguages_loo.rfc4646_subtag %])</a></li> >+ <li> <a href="#">[% PROCESS lang_getregion subtag = sublanguages_loo.rfc4646_subtag %] ([% sublanguages_loo.rfc4646_subtag %])</a></li> > [% ELSE %] >- <li><a href="/cgi-bin/koha/changelanguage.pl?language=[% sublanguages_loo.rfc4646_subtag %]"> [% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %] ([% sublanguages_loo.rfc4646_subtag %])</a></li> >+ <li><a href="/cgi-bin/koha/changelanguage.pl?language=[% sublanguages_loo.rfc4646_subtag %]">[% PROCESS lang_getregion subtag = sublanguages_loo.rfc4646_subtag %] ([% sublanguages_loo.rfc4646_subtag %])</a></li> > [% END %] > [% END %] > >@@ -27,19 +29,11 @@ > [% IF ( languages_loo.group_enabled ) %] > [% IF ( languages_loo.current ) %] > <li class="navbar-text"> >- [% IF ( languages_loo.native_description ) %] >- [% languages_loo.native_description %] >- [% ELSE %] >- [% languages_loo.rfc4646_subtag %] >- [% END %] >+ [% PROCESS lang_getname subtag = languages_loo.rfc4646_subtag %] > </li> > [% ELSE %] > <li><a href="/cgi-bin/koha/changelanguage.pl?language=[% languages_loo.rfc4646_subtag %]"> >- [% IF ( languages_loo.native_description ) %] >- [% languages_loo.native_description %] >- [% ELSE %] >- [% languages_loo.rfc4646_subtag %] >- [% END %] >+ [% PROCESS lang_getname subtag = languages_loo.rfc4646_subtag %] > </a></li> > [% END %] > [% END %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/language.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/language.inc >new file mode 100644 >index 0000000..3440f5e >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/language.inc >@@ -0,0 +1,114 @@ >+[%- BLOCK decompose_subtag -%] >+[%- IF ( matches = subtag.match('^(\w+)$')) -%] >+ [%- SET lang = subtag -%] >+ [%- SET script = '' -%] >+ [%- IF ( lang == 'en' ) -%] >+ [%- SET region = 'US' -%] >+ [%- ELSE -%] >+ [%- SET region = '' -%] >+ [%- END -%] >+[%- ELSIF ( matches = subtag.match('^(\w+)-(\w+)$')) -%] >+ [%- SET lang = matches.0 -%] >+ [%- IF matches.1.length == 2 -%] >+ [%- SET script = '' -%] >+ [%- SET region = matches.1 -%] >+ [%- ELSE -%] >+ [%- SET script = matches.1 -%] >+ [%- SET region = '' -%] >+ [%- END -%] >+[%- ELSIF ( matches = subtag.match('^(\w+)-(\w+)-(\w+)$')) -%] >+ [%- SET lang = matches.0 -%] >+ [%- SET script = matches.1 -%] >+ [%- SET region = matches.2 -%] >+[%- END -%] >+[%- END -%] >+ >+[%- BLOCK lang_description -%] >+[%- PROCESS decompose_subtag subtag = subtag -%] >+[%- PROCESS lang_name lang = lang %] [% PROCESS lang_script script = script %] [% PROCESS lang_region region = region -%] >+[%- END -%] >+ >+[%- BLOCK lang_getregion -%] >+[%- PROCESS decompose_subtag subtag = subtag -%] >+[%- PROCESS lang_region region = region -%] >+[%- END -%] >+ >+[%- BLOCK lang_getname -%] >+[%- PROCESS decompose_subtag subtag = subtag -%] >+[%- PROCESS lang_name lang = lang %] >+[%- END -%] >+ >+[%- BLOCK lang_name -%] >+[%- SWITCH lang -%] >+ [%- CASE 'ar' -%]<span>Arabic</span> >+ [%- CASE 'hy' -%]<span>Armenian</span> >+ [%- CASE 'bg' -%]<span>Bulgarian</span> >+ [%- CASE 'ca' -%]<span>Catalan</span> >+ [%- CASE 'zh' -%]<span>Chinese</span> >+ [%- CASE 'cs' -%]<span>Czech</span> >+ [%- CASE 'da' -%]<span>Danish</span> >+ [%- CASE 'nl' -%]<span>Dutch</span> >+ [%- CASE 'en' -%]<span>English</span> >+ [%- CASE 'fi' -%]<span>Finnish</span> >+ [%- CASE 'fr' -%]<span>French</span> >+ [%- CASE 'gl' -%]<span>Galician</span> >+ [%- CASE 'de' -%]<span>German</span> >+ [%- CASE 'el' -%]<span>Greek</span> >+ [%- CASE 'he' -%]<span>Hebrew</span> >+ [%- CASE 'hi' -%]<span>Hindi</span> >+ [%- CASE 'hu' -%]<span>Hungarian</span> >+ [%- CASE 'id' -%]<span>Indonesian</span> >+ [%- CASE 'it' -%]<span>Italian</span> >+ [%- CASE 'ja' -%]<span>Japanese</span> >+ [%- CASE 'ko' -%]<span>Korean</span> >+ [%- CASE 'lo' -%]<span>Lao</span> >+ [%- CASE 'la' -%]<span>Latin</span> >+ [%- CASE 'nb' -%]<span>Norwegian bokmål</span> >+ [%- CASE 'nn' -%]<span>Norwegian nynorsk</span> >+ [%- CASE 'fa' -%]<span>Persian</span> >+ [%- CASE 'pl' -%]<span>Polish</span> >+ [%- CASE 'pt' -%]<span>Portuguese</span> >+ [%- CASE 'ro' -%]<span>Romanian</span> >+ [%- CASE 'ru' -%]<span>Russian</span> >+ [%- CASE 'sr' -%]<span>Serbian</span> >+ [%- CASE 'es' -%]<span>Spanish</span> >+ [%- CASE 'sv' -%]<span>Swedish</span> >+ [%- CASE 'tet' -%]<span>Tetum</span> >+ [%- CASE 'th' -%]<span>Thai</span> >+ [%- CASE 'tr' -%]<span>Turkish</span> >+ [%- CASE 'uk' -%]<span>Ukranian</span> >+ [%- CASE 'ur' -%]<span>Urdu</span> >+ [%- CASE -%][%- lang -%] >+[%- END -%] >+[%- END -%] >+ >+[%- BLOCK lang_script -%] >+[%- SWITCH script -%] >+ [%- CASE 'Arab' -%]<span>Arabic</span> >+ [%- CASE 'Cyrl' -%]<span>Cyrillic</span> >+ [%- CASE 'Grek' -%]<span>Greek</span> >+ [%- CASE 'Hans' -%]<span>Han (Simplified variant)</span> >+ [%- CASE 'Hant' -%]<span>Han (Traditional variant)</span> >+ [%- CASE 'Hebr' -%]<span>Hebrew</span> >+ [%- CASE 'Laoo' -%]<span>Lao</span> >+ [%- CASE -%][% script %] >+[%- END -%] >+[%- END -%] >+ >+[%- BLOCK lang_region -%] >+[%- SWITCH region -%] >+ [%- CASE 'CA' -%]<span>Canada</span> >+ [%- CASE 'DK' -%]<span>Denmark</span> >+ [%- CASE 'ES' -%]<span>Spain</span> >+ [%- CASE 'FR' -%]<span>France</span> >+ [%- CASE 'GR' -%]<span>Greece</span> >+ [%- CASE 'NZ' -%]<span>New Zealand</span> >+ [%- CASE 'GB' -%]<span>United Kingdom</span> >+ [%- CASE 'US' -%]<span>United States</span> >+ [%- CASE 'TW' -%]<span>Taiwan</span> >+ [%- CASE 'CN' -%]<span>China</span> >+ [%- CASE -%][% region %] >+[%- END -%] >+[%- END -%] >+ >+ >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt >index fc58dbe..8e116fb 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt >@@ -121,29 +121,29 @@ > <textarea name="pref_[% CHUNK.name %]" id="pref_[% CHUNK.name %]" class="preference preference-[% CHUNK.class or "short" %]" rows="10" cols="40">[% CHUNK.value %]</textarea> > [% ELSIF ( CHUNK.type_languages ) %] > <dl> >- [% FOREACH language IN CHUNK.languages %] >+ [% FOREACH language IN CHUNK.languages.sort('rfc4646_subtag') %] > [% IF ( language.plural ) %] > <dt> >- [% IF ( language.native_description ) %][% language.native_description %][% ELSE %][% language.rfc4646_subtag %][% END %] >+ [% PROCESS lang_getname subtag = language.rfc4646_subtag %] > </dt> >- [% FOREACH sublanguages_loo IN language.sublanguages_loop %] >+ [% FOREACH sublanguages_loo IN language.sublanguages_loop.sort('rfc4646_subtag') %] > <dd> >- <label for="[% sublanguages_loo.rfc4646_subtag %]">[% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %]([% sublanguages_loo.rfc4646_subtag %])</label> > [% IF ( sublanguages_loo.enabled ) %] > <input value="[% sublanguages_loo.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="[% sublanguages_loo.rfc4646_subtag %]" type="checkbox" checked="checked" class="preference preference-checkbox"/> > [% ELSE %] > <input value="[% sublanguages_loo.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="[% sublanguages_loo.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/> > [% END %] >+ <label for="[% sublanguages_loo.rfc4646_subtag %]">[% PROCESS lang_description subtag = sublanguages_loo.rfc4646_subtag %] ([% sublanguages_loo.rfc4646_subtag %])</label> > </dd> > [% END %] > [% ELSE %] > <dt> >- <label for="[% language.rfc4646_subtag %]">[% language.native_description %]([% language.rfc4646_subtag %])</label> > [% IF ( language.group_enabled ) %] > <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="[% language.rfc4646_subtag %]" type="checkbox" checked="checked" class="preference preference-checkbox"/> > [% ELSE %] > <input value="[% language.rfc4646_subtag %]" name="pref_[% CHUNK.name %]" id="[% language.rfc4646_subtag %]" type="checkbox" class="preference preference-checkbox"/> > [% END %] >+ <label for="[% language.rfc4646_subtag %]">[% PROCESS lang_description subtag = language.rfc4646_subtag %] ([% language.rfc4646_subtag %])</label> > </dt> > [% END %] > [% END %] >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/doc-head-close.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/doc-head-close.inc >index ab7b4bb..fb625ef 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/doc-head-close.inc >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/doc-head-close.inc >@@ -15,6 +15,8 @@ > <link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/lib/jquery/jquery-ui.css" /> > [% END %] > >+[% PROCESS 'language.inc' %] >+ > [% SET opaclayoutstylesheet='opac.css' UNLESS opaclayoutstylesheet %] > [% IF (opaclayoutstylesheet.match('^https?:|^\/')) %] > <link rel="stylesheet" type="text/css" href="[% opaclayoutstylesheet %]" /> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/language.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/language.inc >new file mode 100644 >index 0000000..3440f5e >--- /dev/null >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/language.inc >@@ -0,0 +1,114 @@ >+[%- BLOCK decompose_subtag -%] >+[%- IF ( matches = subtag.match('^(\w+)$')) -%] >+ [%- SET lang = subtag -%] >+ [%- SET script = '' -%] >+ [%- IF ( lang == 'en' ) -%] >+ [%- SET region = 'US' -%] >+ [%- ELSE -%] >+ [%- SET region = '' -%] >+ [%- END -%] >+[%- ELSIF ( matches = subtag.match('^(\w+)-(\w+)$')) -%] >+ [%- SET lang = matches.0 -%] >+ [%- IF matches.1.length == 2 -%] >+ [%- SET script = '' -%] >+ [%- SET region = matches.1 -%] >+ [%- ELSE -%] >+ [%- SET script = matches.1 -%] >+ [%- SET region = '' -%] >+ [%- END -%] >+[%- ELSIF ( matches = subtag.match('^(\w+)-(\w+)-(\w+)$')) -%] >+ [%- SET lang = matches.0 -%] >+ [%- SET script = matches.1 -%] >+ [%- SET region = matches.2 -%] >+[%- END -%] >+[%- END -%] >+ >+[%- BLOCK lang_description -%] >+[%- PROCESS decompose_subtag subtag = subtag -%] >+[%- PROCESS lang_name lang = lang %] [% PROCESS lang_script script = script %] [% PROCESS lang_region region = region -%] >+[%- END -%] >+ >+[%- BLOCK lang_getregion -%] >+[%- PROCESS decompose_subtag subtag = subtag -%] >+[%- PROCESS lang_region region = region -%] >+[%- END -%] >+ >+[%- BLOCK lang_getname -%] >+[%- PROCESS decompose_subtag subtag = subtag -%] >+[%- PROCESS lang_name lang = lang %] >+[%- END -%] >+ >+[%- BLOCK lang_name -%] >+[%- SWITCH lang -%] >+ [%- CASE 'ar' -%]<span>Arabic</span> >+ [%- CASE 'hy' -%]<span>Armenian</span> >+ [%- CASE 'bg' -%]<span>Bulgarian</span> >+ [%- CASE 'ca' -%]<span>Catalan</span> >+ [%- CASE 'zh' -%]<span>Chinese</span> >+ [%- CASE 'cs' -%]<span>Czech</span> >+ [%- CASE 'da' -%]<span>Danish</span> >+ [%- CASE 'nl' -%]<span>Dutch</span> >+ [%- CASE 'en' -%]<span>English</span> >+ [%- CASE 'fi' -%]<span>Finnish</span> >+ [%- CASE 'fr' -%]<span>French</span> >+ [%- CASE 'gl' -%]<span>Galician</span> >+ [%- CASE 'de' -%]<span>German</span> >+ [%- CASE 'el' -%]<span>Greek</span> >+ [%- CASE 'he' -%]<span>Hebrew</span> >+ [%- CASE 'hi' -%]<span>Hindi</span> >+ [%- CASE 'hu' -%]<span>Hungarian</span> >+ [%- CASE 'id' -%]<span>Indonesian</span> >+ [%- CASE 'it' -%]<span>Italian</span> >+ [%- CASE 'ja' -%]<span>Japanese</span> >+ [%- CASE 'ko' -%]<span>Korean</span> >+ [%- CASE 'lo' -%]<span>Lao</span> >+ [%- CASE 'la' -%]<span>Latin</span> >+ [%- CASE 'nb' -%]<span>Norwegian bokmål</span> >+ [%- CASE 'nn' -%]<span>Norwegian nynorsk</span> >+ [%- CASE 'fa' -%]<span>Persian</span> >+ [%- CASE 'pl' -%]<span>Polish</span> >+ [%- CASE 'pt' -%]<span>Portuguese</span> >+ [%- CASE 'ro' -%]<span>Romanian</span> >+ [%- CASE 'ru' -%]<span>Russian</span> >+ [%- CASE 'sr' -%]<span>Serbian</span> >+ [%- CASE 'es' -%]<span>Spanish</span> >+ [%- CASE 'sv' -%]<span>Swedish</span> >+ [%- CASE 'tet' -%]<span>Tetum</span> >+ [%- CASE 'th' -%]<span>Thai</span> >+ [%- CASE 'tr' -%]<span>Turkish</span> >+ [%- CASE 'uk' -%]<span>Ukranian</span> >+ [%- CASE 'ur' -%]<span>Urdu</span> >+ [%- CASE -%][%- lang -%] >+[%- END -%] >+[%- END -%] >+ >+[%- BLOCK lang_script -%] >+[%- SWITCH script -%] >+ [%- CASE 'Arab' -%]<span>Arabic</span> >+ [%- CASE 'Cyrl' -%]<span>Cyrillic</span> >+ [%- CASE 'Grek' -%]<span>Greek</span> >+ [%- CASE 'Hans' -%]<span>Han (Simplified variant)</span> >+ [%- CASE 'Hant' -%]<span>Han (Traditional variant)</span> >+ [%- CASE 'Hebr' -%]<span>Hebrew</span> >+ [%- CASE 'Laoo' -%]<span>Lao</span> >+ [%- CASE -%][% script %] >+[%- END -%] >+[%- END -%] >+ >+[%- BLOCK lang_region -%] >+[%- SWITCH region -%] >+ [%- CASE 'CA' -%]<span>Canada</span> >+ [%- CASE 'DK' -%]<span>Denmark</span> >+ [%- CASE 'ES' -%]<span>Spain</span> >+ [%- CASE 'FR' -%]<span>France</span> >+ [%- CASE 'GR' -%]<span>Greece</span> >+ [%- CASE 'NZ' -%]<span>New Zealand</span> >+ [%- CASE 'GB' -%]<span>United Kingdom</span> >+ [%- CASE 'US' -%]<span>United States</span> >+ [%- CASE 'TW' -%]<span>Taiwan</span> >+ [%- CASE 'CN' -%]<span>China</span> >+ [%- CASE -%][% region %] >+[%- END -%] >+[%- END -%] >+ >+ >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc >index 7e55007..a5f825d 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-bottom.inc >@@ -37,18 +37,20 @@ > <div class="navbar-inner"> > <ul id="i18nMenu" class="nav"> > <li><p class="lang navbar-text"><strong>Languages: </strong></p></li> >- [% FOREACH languages_loo IN languages_loop %] >+ [% FOREACH languages_loo IN languages_loop.sort('rfc4646_subtag') %] > [% IF ( languages_loo.group_enabled ) %] > [% IF ( languages_loo.plural ) %] > <li class="dropdown"> >- <a data-toggle="dropdown" class="dropdown-toggle sublangs" id="show[% languages_loo.rfc4646_subtag %]" href="#">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %] <b class="caret"></b></a> >+ <a data-toggle="dropdown" class="dropdown-toggle sublangs" id="show[% languages_loo.rfc4646_subtag %]" href="#"> >+ [% PROCESS lang_getname subtag = languages_loo.rfc4646_subtag %] <b class="caret"></b></a> > <ul id="sub[% languages_loo.rfc4646_subtag %]" class="dropdown-menu"> >- [% FOREACH sublanguages_loo IN languages_loo.sublanguages_loop %] >+ [% FOREACH sublanguages_loo IN languages_loo.sublanguages_loop.sort('rfc4646_subtag') %] > [% IF ( sublanguages_loo.enabled ) %] > [% IF ( sublanguages_loo.sublanguage_current ) %] >- <li> <p>[% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %] ([% sublanguages_loo.rfc4646_subtag %])</p></li> >+ <li><p> >+ [% PROCESS lang_getregion subtag = sublanguages_loo.rfc4646_subtag %] ([% sublanguages_loo.rfc4646_subtag %])</p></li> > [% ELSE %] >- <li><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% sublanguages_loo.rfc4646_subtag %]"> [% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %] ([% sublanguages_loo.rfc4646_subtag %])</a></li> >+ <li><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% sublanguages_loo.rfc4646_subtag %]"> [% PROCESS lang_getregion subtag = sublanguages_loo.rfc4646_subtag %] ([% sublanguages_loo.rfc4646_subtag %])</a></li> > [% END %] > [% END # / IF sublanguages_loo.enabled %] > [% END # / FOREACH sublanguages_loo %] >@@ -57,9 +59,11 @@ > [% ELSE %] > [% IF ( languages_loo.group_enabled ) %] > [% IF ( languages_loo.current ) %] >- <li class="active"><p class="navbar-text">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</p></li> >+ <li class="active"><p class="navbar-text"> >+ [% PROCESS lang_getname subtag = languages_loo.rfc4646_subtag %]</p></li> > [% ELSE %] >- <li><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% languages_loo.rfc4646_subtag %]">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</a></li> >+ <li><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% languages_loo.rfc4646_subtag %]"> >+ [% PROCESS lang_getname subtag = languages_loo.rfc4646_subtag %]</a></li> > [% END %] > [% END # / IF languages_loo.current %] > [% END # / IF ( languages_loo.plural ) %] >diff --git a/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc b/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc >index af6e886..2d54b27 100644 >--- a/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc >+++ b/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc >@@ -33,6 +33,8 @@ > <link rel="stylesheet" type="text/css" href="[% themelang %]/css/persona-buttons.css" /> > [% END %] > >+[% PROCESS 'language.inc' %] >+ > <!-- yui js --> > <script type="text/javascript" src="[% yuipath %]/utilities/utilities.js"></script> > <script type="text/javascript" src="[% yuipath %]/container/container-min.js"></script> >diff --git a/koha-tmpl/opac-tmpl/ccsr/en/includes/opac-bottom.inc b/koha-tmpl/opac-tmpl/ccsr/en/includes/opac-bottom.inc >index 3f8bf66..8b71179 100644 >--- a/koha-tmpl/opac-tmpl/ccsr/en/includes/opac-bottom.inc >+++ b/koha-tmpl/opac-tmpl/ccsr/en/includes/opac-bottom.inc >@@ -41,18 +41,18 @@ > <div id="changelanguage" class="ft"> > <div class="lang" style="float:left;padding: 0.1em 0;"><strong>Languages: </strong></div> > <ul id="i18nMenu" class="footermenu"> >- [% FOREACH languages_loo IN languages_loop %] >+ [% FOREACH languages_loo IN languages_loop.sort('rfc4646_subtag') %] > > [% IF ( languages_loo.group_enabled ) %] > [% IF ( languages_loo.plural ) %] >- <li class="more" style="float:left;"><a class="sublangs" id="show[% languages_loo.rfc4646_subtag %]" href="#">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</a><div id="sub[% languages_loo.rfc4646_subtag %]"> >+ <li class="more" style="float:left;"><a class="sublangs" id="show[% languages_loo.rfc4646_subtag %]" href="#">[%- PROCESS lang_getname subtag = languages_loo.rfc4646_subtag -%]</a><div id="sub[% languages_loo.rfc4646_subtag %]"> > <div class="bd"><ul> > [% FOREACH sublanguages_loo IN languages_loo.sublanguages_loop %] > [% IF ( sublanguages_loo.enabled ) %] > [% IF ( sublanguages_loo.sublanguage_current ) %] >- <li> [% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %] ([% sublanguages_loo.rfc4646_subtag %])</li> >+ <li> [%- PROCESS lang_getregion subtag = sublanguages_loo.rfc4646_subtag -%] ([% sublanguages_loo.rfc4646_subtag %])</li> > [% ELSE %] >- <li><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% sublanguages_loo.rfc4646_subtag %]"> [% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %] ([% sublanguages_loo.rfc4646_subtag %])</a></li> >+ <li><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% sublanguages_loo.rfc4646_subtag %]"> [%- PROCESS lang_getregion subtag = sublanguages_loo.rfc4646_subtag -%] ([% sublanguages_loo.rfc4646_subtag %])</a></li> > [% END %] > [% END %] > >@@ -62,9 +62,9 @@ > [% ELSE %] > [% IF ( languages_loo.group_enabled ) %] > [% IF ( languages_loo.current ) %] >- <li style="float:left;">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</li> >+ <li style="float:left;">[%- PROCESS lang_getname subtag = languages_loo.rfc4646_subtag -%]</li> > [% ELSE %] >- <li style="float:left;"><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% languages_loo.rfc4646_subtag %]">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</a></li> >+ <li style="float:left;"><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% languages_loo.rfc4646_subtag %]">[%- PROCESS lang_getname subtag = languages_loo.rfc4646_subtag -%]</a></li> > [% END %] > [% END %] > [% END %] >diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/doc-head-close.inc b/koha-tmpl/opac-tmpl/prog/en/includes/doc-head-close.inc >index 66666f4..6c6cf49 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/includes/doc-head-close.inc >+++ b/koha-tmpl/opac-tmpl/prog/en/includes/doc-head-close.inc >@@ -27,6 +27,9 @@ > [% IF ( bidi ) %] > <link rel="stylesheet" type="text/css" href="[% themelang %]/css/right-to-left.css" /> > [% END %] >+ >+[% PROCESS 'language.inc' %] >+ > <style id="region-opacusercss" type="text/css">[% OPACUserCSS %]</style> > <!-- yui js --> > <script type="text/javascript" src="[% yuipath %]/utilities/utilities.js"></script> >diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/language.inc b/koha-tmpl/opac-tmpl/prog/en/includes/language.inc >new file mode 100644 >index 0000000..3440f5e >--- /dev/null >+++ b/koha-tmpl/opac-tmpl/prog/en/includes/language.inc >@@ -0,0 +1,114 @@ >+[%- BLOCK decompose_subtag -%] >+[%- IF ( matches = subtag.match('^(\w+)$')) -%] >+ [%- SET lang = subtag -%] >+ [%- SET script = '' -%] >+ [%- IF ( lang == 'en' ) -%] >+ [%- SET region = 'US' -%] >+ [%- ELSE -%] >+ [%- SET region = '' -%] >+ [%- END -%] >+[%- ELSIF ( matches = subtag.match('^(\w+)-(\w+)$')) -%] >+ [%- SET lang = matches.0 -%] >+ [%- IF matches.1.length == 2 -%] >+ [%- SET script = '' -%] >+ [%- SET region = matches.1 -%] >+ [%- ELSE -%] >+ [%- SET script = matches.1 -%] >+ [%- SET region = '' -%] >+ [%- END -%] >+[%- ELSIF ( matches = subtag.match('^(\w+)-(\w+)-(\w+)$')) -%] >+ [%- SET lang = matches.0 -%] >+ [%- SET script = matches.1 -%] >+ [%- SET region = matches.2 -%] >+[%- END -%] >+[%- END -%] >+ >+[%- BLOCK lang_description -%] >+[%- PROCESS decompose_subtag subtag = subtag -%] >+[%- PROCESS lang_name lang = lang %] [% PROCESS lang_script script = script %] [% PROCESS lang_region region = region -%] >+[%- END -%] >+ >+[%- BLOCK lang_getregion -%] >+[%- PROCESS decompose_subtag subtag = subtag -%] >+[%- PROCESS lang_region region = region -%] >+[%- END -%] >+ >+[%- BLOCK lang_getname -%] >+[%- PROCESS decompose_subtag subtag = subtag -%] >+[%- PROCESS lang_name lang = lang %] >+[%- END -%] >+ >+[%- BLOCK lang_name -%] >+[%- SWITCH lang -%] >+ [%- CASE 'ar' -%]<span>Arabic</span> >+ [%- CASE 'hy' -%]<span>Armenian</span> >+ [%- CASE 'bg' -%]<span>Bulgarian</span> >+ [%- CASE 'ca' -%]<span>Catalan</span> >+ [%- CASE 'zh' -%]<span>Chinese</span> >+ [%- CASE 'cs' -%]<span>Czech</span> >+ [%- CASE 'da' -%]<span>Danish</span> >+ [%- CASE 'nl' -%]<span>Dutch</span> >+ [%- CASE 'en' -%]<span>English</span> >+ [%- CASE 'fi' -%]<span>Finnish</span> >+ [%- CASE 'fr' -%]<span>French</span> >+ [%- CASE 'gl' -%]<span>Galician</span> >+ [%- CASE 'de' -%]<span>German</span> >+ [%- CASE 'el' -%]<span>Greek</span> >+ [%- CASE 'he' -%]<span>Hebrew</span> >+ [%- CASE 'hi' -%]<span>Hindi</span> >+ [%- CASE 'hu' -%]<span>Hungarian</span> >+ [%- CASE 'id' -%]<span>Indonesian</span> >+ [%- CASE 'it' -%]<span>Italian</span> >+ [%- CASE 'ja' -%]<span>Japanese</span> >+ [%- CASE 'ko' -%]<span>Korean</span> >+ [%- CASE 'lo' -%]<span>Lao</span> >+ [%- CASE 'la' -%]<span>Latin</span> >+ [%- CASE 'nb' -%]<span>Norwegian bokmål</span> >+ [%- CASE 'nn' -%]<span>Norwegian nynorsk</span> >+ [%- CASE 'fa' -%]<span>Persian</span> >+ [%- CASE 'pl' -%]<span>Polish</span> >+ [%- CASE 'pt' -%]<span>Portuguese</span> >+ [%- CASE 'ro' -%]<span>Romanian</span> >+ [%- CASE 'ru' -%]<span>Russian</span> >+ [%- CASE 'sr' -%]<span>Serbian</span> >+ [%- CASE 'es' -%]<span>Spanish</span> >+ [%- CASE 'sv' -%]<span>Swedish</span> >+ [%- CASE 'tet' -%]<span>Tetum</span> >+ [%- CASE 'th' -%]<span>Thai</span> >+ [%- CASE 'tr' -%]<span>Turkish</span> >+ [%- CASE 'uk' -%]<span>Ukranian</span> >+ [%- CASE 'ur' -%]<span>Urdu</span> >+ [%- CASE -%][%- lang -%] >+[%- END -%] >+[%- END -%] >+ >+[%- BLOCK lang_script -%] >+[%- SWITCH script -%] >+ [%- CASE 'Arab' -%]<span>Arabic</span> >+ [%- CASE 'Cyrl' -%]<span>Cyrillic</span> >+ [%- CASE 'Grek' -%]<span>Greek</span> >+ [%- CASE 'Hans' -%]<span>Han (Simplified variant)</span> >+ [%- CASE 'Hant' -%]<span>Han (Traditional variant)</span> >+ [%- CASE 'Hebr' -%]<span>Hebrew</span> >+ [%- CASE 'Laoo' -%]<span>Lao</span> >+ [%- CASE -%][% script %] >+[%- END -%] >+[%- END -%] >+ >+[%- BLOCK lang_region -%] >+[%- SWITCH region -%] >+ [%- CASE 'CA' -%]<span>Canada</span> >+ [%- CASE 'DK' -%]<span>Denmark</span> >+ [%- CASE 'ES' -%]<span>Spain</span> >+ [%- CASE 'FR' -%]<span>France</span> >+ [%- CASE 'GR' -%]<span>Greece</span> >+ [%- CASE 'NZ' -%]<span>New Zealand</span> >+ [%- CASE 'GB' -%]<span>United Kingdom</span> >+ [%- CASE 'US' -%]<span>United States</span> >+ [%- CASE 'TW' -%]<span>Taiwan</span> >+ [%- CASE 'CN' -%]<span>China</span> >+ [%- CASE -%][% region %] >+[%- END -%] >+[%- END -%] >+ >+ >diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/opac-bottom.inc b/koha-tmpl/opac-tmpl/prog/en/includes/opac-bottom.inc >index ec17f80..d23cc31 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/includes/opac-bottom.inc >+++ b/koha-tmpl/opac-tmpl/prog/en/includes/opac-bottom.inc >@@ -9,18 +9,18 @@ > <div id="changelanguage" class="ft"> > <div class="lang"><strong>Languages: </strong></div> > <ul id="i18nMenu" class="footermenu"> >- [% FOREACH languages_loo IN languages_loop %] >+ [% FOREACH languages_loo IN languages_loop.sort('rfc4646_subtag') %] > > [% IF ( languages_loo.group_enabled ) %] > [% IF ( languages_loo.plural ) %] >- <li class="more"><a class="sublangs" id="show[% languages_loo.rfc4646_subtag %]" href="#">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</a><div id="sub[% languages_loo.rfc4646_subtag %]"> >+ <li class="more"><a class="sublangs" id="show[% languages_loo.rfc4646_subtag %]" href="#">[%- PROCESS lang_getname subtag = languages_loo.rfc4646_subtag -%]</a><div id="sub[% languages_loo.rfc4646_subtag %]"> > <div class="bd"><ul> > [% FOREACH sublanguages_loo IN languages_loo.sublanguages_loop %] > [% IF ( sublanguages_loo.enabled ) %] > [% IF ( sublanguages_loo.sublanguage_current ) %] >- <li> [% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %] ([% sublanguages_loo.rfc4646_subtag %])</li> >+ <li> [%- PROCESS lang_getregion subtag = sublanguages_loo.rfc4646_subtag -%] ([% sublanguages_loo.rfc4646_subtag %])</li> > [% ELSE %] >- <li><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% sublanguages_loo.rfc4646_subtag %]"> [% sublanguages_loo.native_description %] [% sublanguages_loo.script_description %] [% sublanguages_loo.region_description %] [% sublanguages_loo.variant_description %] ([% sublanguages_loo.rfc4646_subtag %])</a></li> >+ <li><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% sublanguages_loo.rfc4646_subtag %]"> [%- PROCESS lang_getregion subtag = sublanguages_loo.rfc4646_subtag -%] ([% sublanguages_loo.rfc4646_subtag %])</a></li> > [% END %] > [% END %] > >@@ -30,9 +30,9 @@ > [% ELSE %] > [% IF ( languages_loo.group_enabled ) %] > [% IF ( languages_loo.current ) %] >- <li class="morelang">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</li> >+ <li class="morelang">[%- PROCESS lang_getname subtag = languages_loo.rfc4646_subtag -%]</li> > [% ELSE %] >- <li class="morelang"><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% languages_loo.rfc4646_subtag %]">[% IF ( languages_loo.native_description ) %][% languages_loo.native_description %][% ELSE %][% languages_loo.rfc4646_subtag %][% END %]</a></li> >+ <li class="morelang"><a href="/cgi-bin/koha/opac-changelanguage.pl?language=[% languages_loo.rfc4646_subtag %]">[%- PROCESS lang_getname subtag = languages_loo.rfc4646_subtag -%]</a></li> > [% END %] > [% END %] > [% END %] >-- >1.7.9.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 12017
:
26691
|
26694
|
26735
|
26736
|
26770
|
27687
|
27688
|
27689
|
27690
|
27691
|
27692
|
27693
|
27694
|
27695
|
27696
|
29898
|
29899
|
29900
|
29901
|
29902
|
29903
|
29904
|
29905
|
29906
|
29907
|
33337
|
33338
|
33339
|
33340
|
33341
|
33342
|
33343
|
33344
|
33345
|
33346
|
39304
|
39305
|
39306
|
39307
|
39308
|
39309
|
39310
|
39311
|
39312
|
39313
|
39644
|
39655
|
39656
|
39657
|
39658
|
39659
|
39660
|
39661
|
39662
|
39663
|
39664
|
39665
|
40285
|
40286
|
40287
|
40288
|
40289
|
40290
|
40291
|
40292
|
40293
|
40294
|
40295