Hi Linda: 2011/12/4 Linda Jansova <skolk...@chello.cz>: > Dear all, > > This time we would like to ask a translation-related question. We would like > to have expressions such as "Corporate Author" which are used as facet > labels when displaying search results translated into Czech (the attached > screenshot shows these facets). We have found out that these labels seem to > reside in /openils/var/web/opac/common/js/cs-CZ# ls > FacetDefs.js OrgTree.js. Any ideas how to translate these?
Yep, just went through that for fr-CA a few weeks back. These labels are maintained in the database - so you need to provide translations for the terms in the database, then run "autogen.sh" to regenerate the JS files. Normally we would pull the latest translations from translations.launchpad.net/evergreen before creating the Evergreen release tarball and this should all just work (through the "psql -f Open-ILS/src/sql/Pg/950.data.seed-values-cs-CZ.sql -d evergreen" approach to populate the database -- you'll get ERROR messages on attempts to insert entries that already exist but that's fine -- then "autogen.sh"). But if you need to tweak individual entries or add missing ones, here's a slightly deeper explanation: So, let's start with the labels for metabib classes ("Keyword", "Title", "Author", etc). The config.metabib_class is defined in fm_IDL.xml with the class ID "cmc", a primary field of "name", and a translatable field of "label" (oils_persist:i18n="true"). Let's see what is in config.metabib_class currently: SELECT * FROM config.metabib_class; name | label ------------+------------ keyword | Keyword title | Title author | Author subject | Subject series | Series identifier | Identifier (6 rows) And then let's see what we can find in the database translations for config.metabib_class (doing the lookup by the class ID + primary field): SELECT * FROM config.i18n_core WHERE translation = 'fr-CA' AND fq_field = 'cmc.name'; id | fq_field | identity_value | translation | string ------+----------+----------------+-------------+------------- 1758 | cmc.name | keyword | fr-CA | Mot-cle 1763 | cmc.name | identifier | fr-CA | Identifiant 1762 | cmc.name | series | fr-CA | Collection 1760 | cmc.name | author | fr-CA | Auteur 1761 | cmc.name | subject | fr-CA | Sujet (6 rows) In our case, we can update a field with a translation we don't like as follows: UPDATE config.i18n_core SET string = 'Mot-clé' WHERE id = 1758; Or add a field that currently has no translation (title is missing, in our case): INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cmc.name', 'title', 'fr-CA', 'Titre'); So - those are the broad classes. The narrower ones are what you were asking about specifically; those are defined in config.metabib_field, with a class ID of "cmf" and a primary field of "id" this time: SELECT * FROM config.i18n_core WHERE translation = 'fr-CA' AND fq_field LIKE 'cmf.%'; id | fq_field | identity_value | translation | string ------+-----------+----------------+-------------+------------------------------------ 1825 | cmf.label | 27 | fr-CA | ID interne 1826 | cmf.label | 1 | fr-CA | Titre du périodique 1827 | cmf.label | 21 | fr-CA | ISMN 1828 | cmf.label | 2 | fr-CA | Abréviation du titre The same process that we used for config.metabib_class values applies for updates and inserts, adjusting for the different fq_field identifier: INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cmf.label', '8', 'fr-CA', 'Auteur personnel'); Repeat for all of your translated terms, run "autogen.sh", and you should be good to go (well -- assuming that your browser doesn't cache the previous versions of JavaScript that it has downloaded). > And actually one more question - is it possible to influence the order in > which individual facets appear? I'm going to sidestep this question :) Anyone else want to step up to that one?