The localized resources are stored in the SysLocalizableValues table in text form.
For each set of schema resources in the package-schema-culture bundle, the checksum is stored in the SysPackageResourceChecksum table, which allows you to quickly determine if there are any changes to the package resources when updating the package. The checksum allowed for resources to be separated from schemas, enabling users to create translation packages.
The resources have been moved from schemas to a package, enabling users to create translation packages. To store schema resources with the same name, but with different managers (e.g. Entity and ClientUnitSchema), the names of the schema managers with the prefix "SchemaManager" clipping were added to the resource package names.
A package can contain resources for a schema that is defined in another package. In addition, the package can contain resources without containing schemas ("translation package").
The resources are stored in the SysLocalizableValue table for every localizable string or image. Each record is bound to the package and the base schema identifier.
|ImageData||Graphic resource value.|
|IsChanged||A checkbox for specifying if the resource has been changed.|
|ResourceManager||Resource manager name. Populated only for core resources.|
|SysSchemaId||Base schema identifier. Populated only for configuration resources.|
|Value||String resource value.|
The format for storing resources in exported schemas has also changed. Now the resources in the exported schemas are stored in XML format.
By using the new resource storage mechanism, all changes to localized resources are displayed when the package is updated.
Possible resource states:
- Modified – the resource was changed.
- Added – a new resource has been added.
- Deleted – a resource has been deleted.
- Conflict – a resource was modified and fixed in SVN when another developer was working on it.
When the package is committed, all changes to the localized resources are also displayed in the repository.
It is not currently possible to block resources in the application. If the developer modifies the schema resources, and the package has already been modified and the same resources have been modified in it, they will see a list of those resources with the Conflict state. This means that the version and contents of the resources modified by the developer do not match the version and contents committed in SVN. When the developer commits again, their modifications will block the modifications committed in SVN. Such conflicts must be resolved manually in SVN clients (e.g. Tortoise).
To do this, you need to upload them to the file system (e.g. with Tortoise), and then make changes and commit to SVN.
If you change the SysLocalizableValue table value with an SQL query, you must also change the value of the IsChanged column in the SysPackageResourceChecksum table for the corresponding schema. Otherwise, when the package is updated, the application will not detect a conflict.
You can not add data to the SysLocalizableValue table with a direct SQL query, because there is no information about the added resources in the corresponding schema metadata.