NAME

App::MultiLanguage::LDAP - Multi-language support for applications

SYNOPSIS

use App::MultiLanguage::LDAP;

# two arguments 'host' and 'base' are required to make an instant connnection
$object = new App::MultiLanguage::LDAP( host => '127.0.0.1',
                                        base => 'ou=language,dc=example,dc=com' );

# set the display language expected in application
$object->language('zh-cn');

%words = $object->parse('categories','buy');

# to access data
$words{'categories'}
$words{'buy'}, 

DESCRIPTION

The module App::MultiLanguage provides the multi-language support for applications. All language data will be stored at a LDAP server accessed by App::MultiLanguage::LDAP or other sources. For more detail information about LDAP data structure, view readme of App::MultiLanguage::LDAP.

METHODS

Following is the overview of all the available methods accessible via App::MultiLanguage::LDAP object.

new( host => '127.0.0.1', base => 'ou=language,dc=example,dc=com' )

Returns a new object or undef on failure. Can accept up to five arguments which are, host - may be a host name or an IP number. TCP port may be specified after the host name followed by a colon (such as localhost:10389). The default TCP port for LDAP is 389. port - Port to connect to on the remote server. May be overridden by HOST, for example, 127.0.0.1:389 user - It is a DN used for authentication. password - Bind LDAP server with the given password. base - The DN that is the base object entry relative to which the search is to be performed. There is no scope option can be specified, default one is 'one'.

$object = new App::MultiLanguage::LDAP( 
	host => '127.0.0.1',
	port => '389',
	user => 'cn=manager,dc=example,dc=com',
	password => 'secret',
	base => 'ou=language,dc=example,dc=com'
);

language()

Set the display language expected in application. There are twenty-six languages can be passed as this argument.

# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
# Norwegian (no) - Polish (pl) - Portugese (pt)
# Brazilian Portuguese (pt-br) - Russian (ru) - Swedish (sv)
# Simplified Chinese (zh-cn) - Spanish (es) - Traditional Chinese (zh-tw)

If there is no corresponding language in database, English will be used as default one.

$object->language('zh-cn');

parse();

The function 'parse' will return a hash. The keys would be the id you provided and the values would be the corresponding words or sentances you expected. Here is a quick example:

@array = ('continue_shopping','categories','buy','landscape');
$words = $object->parse(@array);

# to access expecting language
$words->{'categories'}

EXAMPLES

There is a tested LDAP schema file (language.schema) in source file package located at data/ directory.

ACKNOWLEDGEMENTS

A special thanks to Larry Wall <larry@wall.org> for convincing me that no development could be made to the Perl community without everyone's contribution. I am also very conscious of the patience bestowed upon me by my wife, Fu Na, who is always there to listen when I need to talk and laugh when I need a smile. Thank you.

AUTHOR

Pan Yu <xiaocong@vip.163.com>

COPYRIGHT AND LICENSE

Copyright (C) 2008-2009 by Pan Yu. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.