• last updated 11 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Adding support for I18N message catalog upgrades. Any import of

messages from catalog files that is done after the initial import is

considered an upgrade. The message import and upgrade logic is

encapsulated in the proc lang::catalog::import_messages (invoked

through lang::catalog::import).

acs-lang package

- Bumping version of package to 5.0.0b5

- Changes to datamodel:

- Adding columns deleted_p, conflict_p, and sync_time to lang_messages table.

- Removed column upgrade_status from lang_message_keys table

- Adding columns deleted_p, sync_time, conflict_p, upgrade_status to lang_messages_audit table

- Changes to lang::catalog Tcl API:

- Added proc lang::catalog::import_messages that encapsulates the logic for import and upgrade of

messages from catalog files to database.

- Changed the lang::catalog::import_from_file and lang::catalog:import procs to use the new import_messages proc.

- Added the upgrade Tcl API test cases that extensively tests through the import_messages proc with both

en_US and de_DE locales.

- Changes to lang::message Tcl API:

- Changed lang::message::register to take new switches upgrade_sync, upgrade_status, and conlfict. Cleaned up the

proc a little and made it construct SQL dynamically.

- Added procs delete, get, and get_element.

- Added the edit proc that is used when editing attributes of a message other than the message text itself. This

proc will not create a new message revision. It is invoked for example by the delete proc.

- Added the count_conflicts proc.

- Changes to admin UI

- New canonical pages for import/export of catalog files that check for site-wide-admin priv

- Made the message delete page use appropriate Tcl API

- Added the message-conflicts page that shows conflicting messages. Linking to this page from

index page, locale-, and package index pages.

acs-admin package

- Removed the import/export messages pages and using the ones in acs-lang package instead.

    • -0
    • +45
    ./lang-catalog-procs-postgresql.xql
    • -13
    • +29
    ./lang-message-procs-postgresql.xql
  1. … 33 more files in changeset.
fixing bug 1019 by making sure message keys are deleted and removed from the cache on package deletion. Moving all package deletion logic into proc. Adding an instruction on the package delete page that the server should be restarted after deletion

  1. … 2 more files in changeset.
bugfix #824: needed to add -user_id switch to some lang::user procs to specify the user for which to get the locale; also had to change the default upvar level of lang::message::lookup from 2 to 1

  1. … 1 more file in changeset.
bugfix #806: flush cache if guest user changes locale

add localized_message to error since otherwise it is quite hard to track down which message has a problem

changed to not perform the check for embedded variables validity for acs-lang.localization-* keys

Lars helped fix the check that variable in non-en_US messages are also in the corresponding en_US message. Replacing old get_missing_embedded_vars proc with the new get_embedded_vars proc and adding a bunch of test cases

fixing unescaped linebreak in warning log statement

make some Notices either warnings or debug and made them more descriptive by generally including the proc name as well bug #1032

  1. … 71 more files in changeset.
changing proc import_from_file so that failing to register one message does not cause the whole file import to fail

Adding check to lang::message::register that non en_US messages don't have invalid embedded variables (that are not present in en_US message)

adding a validity check in proc lang::system::site_wide_locale. If the locale is invalid we log an informative error message and return en_US. The much preferable solution that we should look at is of course a mechanism for validity checks in the UI for changing parameter values.

Better error message when substitution variable doesn't exist

moving code to toggle enable_p for locale into a Tcl proc

  1. … 1 more file in changeset.
changing the acs-lang-init for the Nth time. Only caching is needed now. If we did need to load message keys into the db here it should be in a scheduled proc as we need the keys *before* the server is up

re-adding the loading of message catalog files on server startup. Since loading is only done at package install if acs-lang is already installed and this is not necessarily always the case

fixing bug introduced on last API cleanup commit

cleanup and renaming of import/export procs in lang::catalog namespace. Now there are really only two public procs to know about: lang::catalog::import and lang::catalog::export. Updating all invocations of the procs and test cases. Adding proc lang::message::unregister for deleting message keys - used in test case teardown.

  1. … 5 more files in changeset.
Because of problem exporting digits in arabic locale (AR_LB with ISO-8859-6) we have now changed to export all catalog files in utf-8 except when ISO-8859-1 can be used. Easiest would be to export all catalog files in utf-8, however, out of fear of hand editing of catalog files messing with the utf-8 encoding we don't. Adding encoding attribute to xml tag of message catalog files. Removing redundant file name prefixing of log statements.

making the util_replace_temporary_tags_with_lookups test case pass again. Wrapping case in rollback. Some cleanup in the tested proc

memoize the user timezone

making sure the proper proc is used to re-generate catalog files after automatic message key and lookup generation. Previously the description tags didn't get written to the message files

Fixed bug #941: lang::conn::timezone fails when not connected

adding syntax check of acs-lang.localization-grouping value and falling back on en_US locale in case of invalid syntax (to avoid broken pages)

fixing bug 915 by making sure any adp vars (including the noquote ones) are excluded when searching for translatable text. We still allow for embedded adp vars, only, we currently don't allow them to have the noquote instruction, we could add support for that later.

Make lang::user::site_wide_locale_not_cached{} return the system wide

locale for non-registered users, who does not have an ad_locale cookie.

Ensure that the ad_locale cookie never expires. Oops. ;)

Part of the fix for bug #806: Store non-registered visitors locale

setting in a cookie (and not in a client property).

removing print statement that seemed superfluous

Changed message key encoding to not confuse eval or subst

  1. … 1 more file in changeset.
bugfix in xml catalog import proc, variable named charset should have been named mime_charset