Plugin Directory

Test out the new Plugin Directory and let us know what you think.


SrbTransLatin handles using Serbian language Cyrillic and Latin script. For Cyrillic content, visitor may choose to view it using Cyrillic or Latin.

SrbTransLatin handles using Serbian language Cyrillic and Latin script. For Cyrillic content, visitor may choose to view it using Cyrillic or Latin.

Contents of the site should be written using Cyrillic script. Then, this plugin will allow users to choose to read contents in Cyrillic or Latin script.

If some contents is entered in Latin script, it would stay in Latin even if user chooses to use Cyrillic. Transliteration occurs only from Cyrillic to Latin script.

Site owner may set default for script to show:

  • Cyrillic,

  • Latin and

  • Cyrillic if visitor accepts it (has set some Cyrillic language as acceptable in his browser)

Script also may be selected manually, by adding ?lang=cir or ?lang=lat to document url. If parameter is not specified default script is used.

Site owner may use widget to allow visitors to choose among Cyrillic and Latin script. He may choose if script options are shown as html links or items of combo box. By default, html link are dipslayed. He also may set if widget would show title or not.

When user selects script, his choice stays permanent while he is on site. All internal links within site are altered to contain information about selected script. This means, when link is copied and pasted to some other site, it would contain information which script to use for displaying contents. There is an option to remember choosen script as cookie in visitor's brower so he has no need to set it again on future visits.

Initially, when new article is posted using Cyrillic script in title, permalink is created with conversion to Latin script. Site owner may turn it of.

Transliteration works for all feeds too (atom, rdf, rss, rss2).

Disabling transliteration for part of page contents

When transliteration occurs, everything in the HTML document is transliterated from Cyrillic to Latin script except if contents is placed among [lang id="skip"] and [/lang] tags. This leaves user to mark part of the text he does not want to be transliterated at all, meaning, some parts of Cyrillic text may stay Cyrillic even if user chooses to view site in Latin script.

Changing image depending on selected script

If you want to add image on page which contains Cyrillic text and you want it to be replaced with image that contains Latin script then add =cir= as suffix in image name. On transliteration, Image name will be changed to have =lat= as suffix.

Example: filename=cir=.jpg will be replaced with filename=lat=.jpg

You have to provide Latin version image at same path as Cyrillic image is placed, of course.

You may use other delimiter besides "=". You have to set delimiter in plugin settings. Delimiter may be more than one character long. For example, if you set delimiter to "-" then file name filename-cir-.jpg will be replaced with filename-lat-.jpg

Script mark may be placed anywhere in path, not just file name.

Using script selector on custom places

If you need to put script selector in site template outside widgets areas then you can use function stl_show_selector() provided with plugin. Function accepts four parameters (all optional):

stl_show_selector (selector_type, oneline_separator, cyrillic_caption, latin_caption, inactive_script_only, show_only_on_wpml_languages)

selector_type chooses which type of selector to display:

  • links - list of choices in form of widget items

  • list - list of choices in form of dropdown selection

  • oneline - list of choices as one line separated by oneline_separator

Default value is 'oneline'

oneline_separator is a string that should be inservted between script selection items. Default value is '/'.

cirillic_caption is a string that should be used as caption for item of cyrillic sleection. Default is 'ћирилица'

latin_caption is a string that should be used as caption for item of latin sleection. Default is 'латиница'

inactive_script_only if checked dosplays only option to select inactive script, currently active script wil not be an option

show_only_on_wpml_languages contains list of WPML languages comma separated for which script selection swhould be visible

To use this function just call it from place where you need code to be inserted, like:

<?php stl_show_selector('oneline', '/', 'ћирилица', 'латиница') ?>

Using script info in custom code

You may use some info about script state for customizing templates. Here are available functions:

stl_get_current_script() - returns id of currently displayed script. It returns id as set in plugin options.

stl_is_current_cyrillic() - returns true if currently displayed script is Cyrillic.

stl_is_current_latin() - returns true if currently displayed script is Latin.

stl_get_cyrillic_id() - returns id of Cyrillic script as set in plugin settings.

stl_get_latin_id() - returns id of Lating script as set in plugin settings.

stl_get_script_identificator() - returns identificator used in URL to select script as set in plugin settings.

Sanitizing file names

When files are uploaded to WordPress site, it is not good to let them have Cyrillic characters in file names. SrbTransLatin has optin to clean such characters and replace them with appropriate latin characters.

Fix url colision with other plugins

There are some plugings that also use default identificator 'lang', which SrbTransLatin uses to pass selected script information through url. To fix this there is an option to set this identificator. If you have problems with other plugins just change this to 'script' or 'lng', or something else as you like.

Pay attention that if you change this option, all previous urls containing script selection will become invalid. It is best to set this before site is heavily indexed or externally linked.

Fix priority colision with other plugins

SrbTransLatin as a rule should be the last plugin executed, so it can process page content after all content is generated by other plugins. At least it should be the last of plugins that generate content.

By default, SrbTranslatin uses priority 99 to make good chance to be at the end of executing plugin list. If for some reason it does not work well, user can change priority.

There is config_example.php in SrbTransLatin directory. User should copy that to config.php and edit new file. There is a line saying:

$stl_config['priority'] = 9999;

User may change number 9999 to any other. Greater number is lower priority, meaning exexuting after plugins with lower number.

WPML compatibility

It is quote often that users of SrbTranslatin als use WPML and they meet with conflict as both plugins use the same language identificator 'lang'. SrbTransLatin has an option for user to set different language identificator to resolve conflict. It is recommend to use 'script' as identificator.

Moreoever, on installation, SrbTranslatin will check if WPML is installed and it will change it's language identificator. Also, when conflict is possible, warning will be presented to user while in SrbTransLatin settings.

When setting widget, or using user have an option to set language identificators used by WPML which for widget will be invisible.


This plugin is developed inspired by two plugins WP Translit by Aleksandar Urošević and srlatin by Kimmo Suominen. I actually merged functionality of these two and expanded it with a lot of new functionality I needed for my site, and later with new functionality asked by plugin users.

Requires: 2.6.1 or higher
Compatible up to: 4.7.1
Last Updated: 1 month ago
Active Installs: 2,000+


5 out of 5 stars


0 of 2 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,2,2 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1