From e44ccdabfe9c45bb28eb2fa1aee78f0f1d7f937b Mon Sep 17 00:00:00 2001 From: Bernardo Gonzalez Kriegel Date: Tue, 1 Apr 2014 07:59:46 -0300 Subject: [PATCH] Bug 12017 - Move language description out of database MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch moves language descriptions from database into template files, in part to ease the translation of some strings, but mostly to have one place to define languages. All languages/scripts/regions are defined at languages.inc template file, with native versión and translatable version. As a bonus, language descriptions are present at webinstaller stage. 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 There are many missing descriptions 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, verify all descriptions in native language. 7) CHANGE in Language changer (staff/opac). Currently we show Lang+Code, and in lang groups Lang+Script+Region+Code I think it's too long, I propose to show only Lang, and in groups Region+Code, all native. Change OPAC theme (prog|ccsr) and check again. On prog and ccsr the result is not pretty, but works 8) Go to Administration > System preferences > Local use Add a new local syspref, any Explanation|Variable|Value, type Languages, Save. Check that all languages look good. Also Edit that syspref, on edition a list of languages must show in value box, check that they look good NOTE: There is a Bug in this kind of preference, selected languages are passed but ignored at save/load time. Only staff selected languages are shown. A problem for another report 9) NEW - Installer languages. This patch enable view of languages on Web installer. Edit your koha-conf.xml, change database name to a new name, create that database and grant access, reload staff page, log in, you will be redirected to step1 of installer, check names and codes for installed languages. (revert to your old database before proceed) 10) Advanced Search. On staff/opac{bootstrap/prog/ccsr}, go to advanced search, clic more options, go to limit by language, select one and press search, verify the search term "Search with limit(s): 'ln,rtrn:XXX'" with XXX the iso639-2 code of your selected lang NOTE: This is the ONLY place where translated language names are used!!! 11) 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) 12) Change language to German (DE), go to advanced search 'Suche' (staff), clic 'mehr Optionen', look for 'Sprache' pulldown, verify some translations (ej. Greek -> Griechisch) [this translations are not present on opac] I think that all previous functionality is present. Lines starting --- C4/Languages.pm | 5 - catalogue/search.pl | 5 - .../prog/en/includes/doc-head-close.inc | 2 + .../prog/en/includes/installer-doc-head-close.inc | 3 + .../prog/en/includes/intranet-bottom.inc | 22 +-- .../intranet-tmpl/prog/en/includes/languages.inc | 196 ++++++++++++++++++++ .../prog/en/modules/admin/preferences.tt | 10 +- .../prog/en/modules/admin/systempreferences.tt | 157 ++++++---------- .../prog/en/modules/catalogue/advsearch.tt | 22 +-- .../prog/en/modules/installer/step1.tt | 10 +- .../bootstrap/en/includes/doc-head-close.inc | 2 + .../opac-tmpl/bootstrap/en/includes/languages.inc | 196 ++++++++++++++++++++ .../bootstrap/en/includes/opac-bottom.inc | 14 +- .../bootstrap/en/modules/opac-advsearch.tt | 16 +- .../opac-tmpl/ccsr/en/includes/doc-head-close.inc | 3 + .../opac-tmpl/ccsr/en/includes/opac-bottom.inc | 31 +++- .../opac-tmpl/prog/en/includes/doc-head-close.inc | 3 + koha-tmpl/opac-tmpl/prog/en/includes/languages.inc | 196 ++++++++++++++++++++ .../opac-tmpl/prog/en/includes/opac-bottom.inc | 14 +- .../opac-tmpl/prog/en/modules/opac-advsearch.tt | 17 +- opac/opac-search.pl | 4 - 21 files changed, 742 insertions(+), 186 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/languages.inc create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/includes/languages.inc create mode 100644 koha-tmpl/opac-tmpl/prog/en/includes/languages.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/catalogue/search.pl b/catalogue/search.pl index a391dfe..9138510 100755 --- a/catalogue/search.pl +++ b/catalogue/search.pl @@ -144,7 +144,6 @@ use C4::Context; use C4::Output; use C4::Auth qw(:DEFAULT get_session); use C4::Search; -use C4::Languages qw(getAllLanguages); use C4::Koha; use C4::Members qw(GetMember); use C4::VirtualShelves; @@ -338,10 +337,6 @@ if ( $template_type eq 'advsearch' ) { $template->param(uc(C4::Context->preference("marcflavour")) => 1, search_boxes_loop => \@search_boxes_array); - # load the language limits (for search) - my $languages_limit_loop = getAllLanguages($lang); - $template->param(search_languages_loop => $languages_limit_loop,); - # Expanded search options in advanced search: # use the global setting by default, but let the user override it { 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..6bc6046 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 @@ [% END %] +[% PROCESS 'languages.inc' %] + [% INCLUDE 'validator-strings.inc' %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/installer-doc-head-close.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/installer-doc-head-close.inc index 122a06c..e3749b5 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/installer-doc-head-close.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/installer-doc-head-close.inc @@ -68,5 +68,8 @@ td input { font-size: 1.5em; } } + +[% PROCESS 'languages.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..f6d9ccb 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,18 @@