LibLocalisation by Netcarver

Contains localisations for currency, language and countries.

Localisation Library for Countries, Languages and Currencies

This library contains packaged publicly available data taken from an older version of Umpirsky's Country List before it specialised just in country localisations.

Prerequisites


  • A working PW3.0.98+ installation.

Installation


Via Modules Page In Admin

  • Install using module class name of "LibLocalisation"

Usage Examples


To create a localisation for a particular locale, first create a new instance and define the locale...

$de_DE = wire('modules')->get('LibLocalisation')->setLocale('de_DE');

You can now use your locale to get information about countries, currencies and languages as they are used in that locale. For example, to output the names of various countries you use the country() method, passing in an ISO 3166-2 country code...

echo $de_DE->country('CH'); // Outputs "Schweiz" - the German for Switzerland.
echo $de_DE->country('AU'); // Outputs "Australien" - the German for Australia.
echo $de_DE->country('US'); // Outputs "Vereinigte Staaten" - ditto for the United States of America.

You can create as many instances of the module as you need and set them all up for the same, or different, locales.

To access currency data, you call the currency() method, passing in the currency code you are interested in.

echo $de_DE->currency('GBP');

This returns an array of data about GBP - localised in German...

[
digits => 2,
number => "826",
symbol => "£",
name => "Britisches Pfund Sterling"
]

Finally, you can output localised language names by calling the language() method and giving it a language code.

echo $de_DE->language('fr'); // Outputs "Französisch" - the German for French.

File structure for localisation data


The data is housed under the data/ subdirectory and is arranged by major language code. Sub locales hold specialisations of the parent language entries, and this structure prevents much repetition in the data set.

data/
  |-- ar  << 2 letter folders hold files containing localisations
  .         for the base language they represent.
  .
  .
  |-- common             - This folder holds various data common to all areas.
  .
  .
  .
  |-- en                 - This folder holds general English localisations.
  |    |-- currency.php
  |    |-- language.php
  |    \-- country.php   - This file has the country name mappings in English.
  |
  |-- en_GB
  |     \-- country.php  - This file holds the just the diffs from en/country.php country name mappings.
  |
  |-- fr                 - This folder has the French localisations.
  |    |-- currency.php
  |    |-- language.php
  |    \-- country.php
  |
  |-- fr_FR
  |     |-- language.php
  |     \-- country.php
  .
  .
  .

License(s)


Umpirsky's Country List data was used as the source for the files under the data/ directory and that project uses a MIT License. My module is also issued under a MIT license (See LICENSE.txt.)

Install and use modules at your own risk. Always have a site and database backup before installing new modules.

Twitter updates

  • ProcessWire 3.0.182 core updates– More
    23 July 2021
  • ProcessWire 3.0.181 has fixes and improvements as usual, but the biggest addition is a nice pull request for multi-language module translations, plus major updates to our Helloworld and ProcessHello demonstration modules. This post covers it all— More
    2 July 2021
  • ProcessWire 3.0.180 core updates– More
    18 June 2021

Latest news

  • ProcessWire Weekly #377
    In the 377th issue of ProcessWire Weekly we'll cover the latest core updates, highlight some recent online resources, and more. Read on!
    Weekly.pw / 31 July 2021
  • ProcessWire 3.0.181 core updates + “Hello World”
    ProcessWire 3.0.181 has fixes and improvements as usual, but the biggest addition is a nice pull request from LostKobrakai, plus major updates to our Helloworld and ProcessHello demonstration modules. This post covers it all.
    Blog / 2 July 2021
  • Subscribe to weekly ProcessWire news

“Indeed, if ProcessWire can be considered as a CMS in its own right, it also offers all the advantages of a CMF (Content Management Framework). Unlike other solutions, the programmer is not forced to follow the proposed model and can integrate his/her ways of doing things.” —Guy Verville, Spiria Digital Inc.