Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: ab6b36de47
Fetching contributors…

Cannot retrieve contributors at this time

127 lines (79 sloc) 2.929 kB
OVERVIEW
========
Java uses Resource Bundles for i18n stuff.
Here's a typical bundle:
lang.properties
---------------
key1 = value1
key2 = value2
multiline = Line 1\
Line 2\
Line 3
Non-ASCII symbols are encoded as Unicode Entities:
russian_letter_ya = \u044F
See more info on Jva properties files at
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream)
rberl will try to bring Resourse Bundles' functionality (most of it anyway) to Erlang
GETTING STARTED
===============
ALSO SEE EDOCS IN THE DOCS DIRECTORY!
The library comes in two flavors: a module to process .properties files and a gen_server
You can use the module to handle translations yourself or use the gen_server for a
(questionably) easier handling.
TO USE THE MODULE
-----------------
1. Compile rberl.erl from src folder
2. run
> rberl:rberl:process_file("./../examples/lang.properties").
to get a proplist containing all key-value pairs from the specified file
TO USE THE GEN_SERVER
---------------------
1. Compile both rberl.erl and rberl_server from src folder
2. run
> rberl_server:start()
to start the server
3. run
> rberl_server:load("./../examples/", "lang").
to load strings from all *.properties files that start with "lang" from the
specified directory
4. run
> rberl_server:get("multiline", "ru").
to get the value associated with key "multiline" for locale "ru"
5. run
> rberl_server:reload().
to reload all files
MISC
----
- When calling load, make sure that the dir ends in a trailing slash (to be fixed)
- When retrieving keys, make sure that "complex" locales use underscores. I.e.
use ru_RU and ru_RU_UNIX instead of ru-ru and ru-ru_UNIX
CURRENT FEATURES
===============
1. Parses .properties files into key-value pairs
2. Both keys and values are strings (lists)
3. Parses multiline values
4. Parses unicode values in the form \uxxxx
5. Handles all of the weirdness described here:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html#load(java.io.InputStream)
TESTS
=====
The included tests was created using the ABNF generator from
http://www.quut.com/abnfgen/
See the ABNF for Java properties file in priv/properties.abnf
The ABNF does no define a correct properties file, however. Here's a properties file that conforms to the abnf-file:
------- start sample properties file ----------
key = value
key2 : value2
key3 value3
key4 = a multiline\
value
an_invaild_line
-------- end sample properties file ------------
The purpose is to create a parser that will process such a file and simply
skip over invalid lines as if they were comments
Test results have been coded by hand, so there are bound to be errors
REQUIREMENTS
============
Should run on R12B or later
Specific modules:
unicode, http://erlang.org/doc/man/unicode.html
Jump to Line
Something went wrong with that request. Please try again.