1.4.1 • Published 6 years ago

htmli18n v1.4.1

Weekly downloads
1
License
ISC
Repository
github
Last release
6 years ago

HTML i18n

This library allows to localize an html file using javascript an external content file

Getting Started

In a terminal inside your project directory

bower install htmli18n

In the header of your html page at the very begining even before other dependency

<head>
	<script src="bower_components/pegasus/dist/pegasus.min.js"></script>
	<script src="bower_components/htmli18n/dist/js/htmli18n.js"></script>
	<script>
	i18n.setLanguage(['fr','en'],'fr','en').init();
	</script>
	...
</head>

i18n setLanguage(SUPPORTED_LANGUAGE,DEFAULT_LANGUAGE,FORCED_LANGUAGE)

This method will inject the information of your web application about supported language and default language. The last parameter is optional and for test only. This method will return the i18n object so you can chain with an init call that will fetch the right localization file and localize the page.

Then in your placeholder you want to localize

<i18n key="main.text.somethingElse">SEO can read that</i18n>
<i18n>
main.text.response
</i18n>
<img i18n-src="main.image.src|i18n" alt="main.image.alt|i18n"/>
<input type="text" placeholder="main.input.placeholder|i18n"/>

One more thing before starting Create a file in a folder resources called locale_en.json and do the same for all the language you want to support

{
	"main": {
		"title": {
			"tutorial": "Tutorial"
		},
		"label": {
			"question": "Is it in english?",
			"groovy": "{name} I am",
			"person": {
				"0": "Person",
				"1": "{n} persons",
				"2": "{n} persons",
				"3": "{n} persons",
				"n": "{n} persons",
				"gt99": "A lot of persons"
			}
		},
		"text": {
			"response": "Yes it is!"
		},
		"input": {
			"placeholder": "Your email here"
		},
		"image": {
			"alt": "This is validated",
			"src":"img/fancy_en.png"
		}
	}
}

Live test here

Advanced

The localization library support also the contextualization

<i18n context="{name:'Yoda'}">main.label.groovy</i18n>
<i18n context="0">main.label.person</i18n>

(read more](https://github.com/musterknabe/translate.js)

Test

We will install a simple http server

npm install http-server -g

Go to your project directory and run

http-server .

Open and navigate to your html page

development

  • build
gulp
  • run
npm install http-server -g
http-server .

open