Once User Preferences have been added, we will want to improve our handling of foreign language translations, which are currently supported, but only to a limited extent. The proposed approach is as follows:
1. Add user-defined lists of "preferred languages" to be set up by our registered users in User Preferences.
2. If a user has not set up language preferences or has not signed in, the software will behave as it currently does, i.e. display only the "original publication" Title and any English VTs of foreign language Titles.
3. Add a new field, "Language", to Title records and populate them properly. (Multilingual books may be a headache, but they are fairly rare in the field.)
4. "Mass change" foreign language translations of English language Titles from Pubs under the main Title to VTs
5. Change the Summary display logic to show only the Titles that match the current user's preferences
6. Start entering foreign language translations of Shortfiction Titles and foreign language collections/omnibuses/anthologies that have no analog in English
Anonymous
Additional design suggestions at http://www.isfdb.org/wiki/index.php/ISFDB:Proposed_Design_Changes#Enhanced_support_for_other_languages:
1. Create a new table, "languages". The MARC-21 standard maintained by the Library of Congress has a nice list of languages, but other options can be considered as well.
2. Add a new field, "Language", to the Title record and update the data entry forms to accommodate this new field.
3. Change Help to tell users to enter foreign language translations as Titles (rather than as Pubs under the canonical Title) and then create VTs.
4. Add a User Preference page which will let each user decide which languages he wants to see. "Show all" may be an option and at least one moderator wants a "Suppress all foreign language originals" check box, but that may be harder to do.
5. Make sure that any users who are not logged in still see "Originals+English translations", i.e. preserve the current behavior for casual browsers.
6. For any logged in user who has selected his preferred language(s), show the original title and any VTs whose language matches his preferred language(s).
7. Create an option to show all VTs in all languages for a given author or title -- this will accommodate "single author collectors" without forcing them to wade through lots of irrelevant content.
8. Display something like "Log in to see other languages" at the top of each page or in the navbar to encourage more users to log in.
9. Display the language code for foreign language VTs
Additional functionality that we will get out of this:
1. Adds the ability to search for foreign language titles
2. Adds support for translations of short fiction titles
3. Lets us easily distinguish between, say, the English and the Polish versions of Solaris.
Known limitations:
1. The thorny issue of translators will be ignored for now -- pseudonymous translators would be a pain to implement and will require more thought. I'd love to implement it at the same time as the language codes, but it would likely overwhelm the project.
2. Latin-2 (and especially Cyrillic) languages will still require transliteration.
3. Multilingual books will not be well supported.
Things to consider:
1. What do we do about foreign language collections/omnibuses that have no analogs (no pun intended) in the original language? There is any number of foreign language Heinlein/Asimov/etc collections which collect their stories more or less randomly and do not have a matching canonical title in English.
2. How many languages do we want to support? The MARC-21 standard support a lot of them, from Sanskrit to Klingon, but do we really need all of them? And if not, how do we decide what languages would be safe to drop? I guess we could start with all European and major non-European languages and add more languages as needed.
This addresses Step 3 only, and not even all of that: people editing titles get to choose or change a language for that title. Default is still "English" but hopefully even English-only editors can spot the language (usually).
Committed the following:
scripts/add_title_language.sql 1.1
edit/edittitle.py 1.11
edit/submittitle.py 1.14
mod/tv_update.py 1.6
mod/ta_update.py 1.10
common/titleClass.py 1.6
common/isfdb.py 1.33
The following scripts were committed and installed in r2011-43 in order to support the addition of the new "Language" field to to the Titles table:
scripts/add_title_language.sql 1.1
biblio/title.py 1.35
edit/addvariant.py 1.6
edit/edittitle.py 1.14
edit/mkvariant.py 1.8
edit/newpub.py 1.15
edit/submitmkvar2.py 1.7
edit/submitnewpub.py 1.17
edit/submittitle.py 1.15 (subsumes 1.14)
edit/submitvariant.py 1.6
edit/tv_merge.py 1.5
edit/ts_merge.py 1.5
mod/ka_new.py 1.11
mod/kv_new.py 1.7
mod/pa_new.py 1.13
mod/pv_new.py 1.13
mod/tv_merge.py 1.6
mod/ta_merge.py 1.7
mod/ta_unmerge.py 1.10
mod/tv_update.py 1.7 (subsumes 1.6)
mod/ta_update.py 1.11
mod/va_new.py 1.6
mod/vv_new.py 1.5
common/titleClass.py 1.6
common/isfdb.py 1.33
Let users choose a default language that will be used when creating new publications or titles, or editing a title with no language set yet.
scripts/add_default_language.sql 1.1
biblio/mypreferences.py 1.4
biblio/submitpreferences.py 1.4
edit/addvariant.py 1.7
edit/edittitle.py 1.15
edit/mkvariant.py 1.11
edit/newpub.py 1.16
Patch r2011-61 was installed on 2011-11-29. It suppressed the display of translated VTs unless the user chose the VT's language in his or her Language Preferences. The affected scripts were:
biblio/biblio.py 1.15
biblio/common.py 1.54
biblio/mylanguages.py 1.5
biblio/mypreferences.py 1.5
biblio/pe.py 1.16
biblio/series.py 1.4
Patches r2011-62 and r2011-63 fixed two display bugs.
Let users choose a default language that will be used when creating new publications or titles, or editing a title with no language set yet. Affected scripts:
biblio/mypreferences.py 1.6
biblio/submitpreferences.py 1.5
common/isfdb.py 1.39
common/SQLparsing.py 1.69
edit/addvariant.py 1.9
edit/edittitle.py 1.16
edit/isfdblib_print.py 1.3
edit/mkvariant.py 1.12
edit/newpub.py 1.17
scripts/add_default_language.sql 1.1
Implemented in r2012-57 and r2012-58 on 2012-12-10.
Closing the FR - other language-related development will be done using other FRs as vehicles.