C API representing a collection of resource information pertaining to a given locale
C API representing a collection of resource information pertaining to a given locale. A resource bundle provides a way of accessing locale- specific information in a data file. You create a resource bundle that manages the resources for a given locale and then ask it for individual resources.

The resource bundle file is a text (ASCII or Unicode) file with the format:

.   locale {
.      tag1 {...}
.      tag2 {...}
.   }
The tags are used to retrieve the data later. You may not have multiple instances of the same tag.

Four data types are supported. These are solitary strings, comma-delimited lists of strings, 2-dimensional arrays of strings, and tagged lists of strings.

Note that all data is textual. Adjacent strings are merged by the low-level tokenizer, so that the following effects occur: foo bar, baz // 2 elements, "foo bar", and "baz" "foo" "bar", baz // 2 elements, "foobar", and "baz" Note that a single intervening space is added between merged strings, unless they are both double quoted. This extends to more than two strings in a row.

Whitespace is ignored, as in a C source file.

Solitary strings have the format:

.   Tag { Data }
This is indistinguishable from a comma-delimited list with only one element, and in fact may be retrieved as such (as an array, or as element 0 or an array).

Comma-delimited lists have the format:

.   Tag { Data, Data, Data }
Parsing is lenient; a final string, after the last element, is allowed.

Tagged lists have the format:

.   Tag { Subtag { Data } Subtag {Data} }
Data is retrieved by specifying the subtag.

Two-dimensional arrays have the format:

.   TwoD {
.       { r1c1, r1c2, ..., r1cm },
.       { r2c1, r2c2, ..., r2cm },
.       ...
.       { rnc1, rnc2, ..., rncm }
.   }
where n is the number of rows, and m is the number of columns. Parsing is lenient (as in other data types). A final comma is always allowed after the last element; either the last string in a row, or the last row itself. Furthermore, since there is no ambiguity, the commas between the rows are entirely optional. (However, if a comma is present, there can only be one comma, no more.) It is possible to have zero columns, as follows:
.   Odd { {} {} {} } // 3 x 0 array
But it is impossible to have zero rows. The smallest array is thus a 1 x 0 array, which looks like this:
.   Smallest { {} } // 1 x 0 array
The array must be strictly rectangular; that is, each row must have the same number of elements.

This is an example for using a possible custom resource:

.    const char *currentLocale;
.    UErrorCode success = ZERO_ERROR;
.    UResourceBundle* myResources=ures_open("MyResources", currentLocale, &success );
.
.    UChar *button1Title, *button2Title;
.    button1Title= ures_get(myResources, "OkKey", &success );
.    button2Title= ures_get(myResources, "CancelKey", &success );

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de