J3.x

Difference between revisions of "Making a Language Pack for Joomla/pt-br"

From Joomla! Documentation

(Created page with "Elas são usadas para mapeamento da Ajuda. Quando o wiki específico do idioma for usado, elas serão funcionais.")
(Updating to match new version of source page)
Line 996: Line 996:
 
JHELP_COMPONENTS_MESSAGING_INBOX="Components_Messaging_Inbox"</source>
 
JHELP_COMPONENTS_MESSAGING_INBOX="Components_Messaging_Inbox"</source>
  
Elas são usadas para mapeamento da Ajuda. Quando o wiki específico do idioma for usado, elas serão funcionais.
+
They are used for mapping the help. When a specific wiki for help per language is available, they will be functional.
  
 
[[Category:Joomla! 3.0/pt-br]]
 
[[Category:Joomla! 3.0/pt-br]]
 
[[Category:Tutorials/pt-br|Tutoriais]]
 
[[Category:Tutorials/pt-br|Tutoriais]]
 
[[Category:Language Development/pt-br|Desenvolvimento de Idioma]]
 
[[Category:Language Development/pt-br|Desenvolvimento de Idioma]]

Revision as of 06:50, 4 May 2015

Other languages:
English • ‎Nederlands • ‎español • ‎français • ‎polski • ‎português • ‎português do Brasil • ‎русский
Joomla! 
3.x
series

Como criar pacotes de idioma localizados do sistema

Observações

  • TODOS OS ARQUIVOS DEVEM SER SALVOS EM UTF8 NO BOM (para símbolos não-ascii, como letras com acento etc.)
  • The Localise component may help you create and update the ini files
  • Desde o Joomla! 3.2.0, en-GB sempre carrega primeiro. Sendo assim, se uma string estiver faltando ou há um erro de leitura no pacote de idioma, o valor em inglês será exibido.

Pacotes de Idioma Completos

* pt-BR é o prefixo do idioma Português Brasileiro. Um pacote de idioma completo contém traduções para as áreas do site e do administrador.

  1. In the case of a FULL pack, the package is composed of 3 files, then zipped.
    • pkg_fr-FR.xml
    • site_fr-FR.zip
    • admin_fr-FR.zip
  2. Naming of the pack
    • fr-FR_joomla_lang_full_3.4.1v1.zip
  3. Files required for partial deletion
    • each pack should include a fr-FR.lib_joomla.ini and a fr-FR.localise.php to cope for deletion of site or admin pack by the user.
    • IMPORTANT: Since some administrator ini files are necessary in front-end and some changes were brought in the loading of the plugin ini files, it is always necessary to include some admin part in the final pack, even for a 'site-only' pack. See below The Site-only pack

Um arquivo pkg_pt-BR.xml

<?xml version="1.0" encoding="UTF-8"?>
<extension type="package" version="3.4" method="upgrade"> <! method="upgrade" is compulsory since 3.4 -->
	<name>French_fr-FR</name>
	<packagename>fr-FR</packagename> <!-- the packagename has to be the same as the name of pkg_whatever.xml -->
	<version>3.4.1.1</version> <!-- change the version # 3.x.x.x when updating, will display in manager -->
	<creationDate>03/03/2015</creationDate> <!-- will display in manager -->
	<author>French translation team : joomla.fr</author> <!-- will display in manager -->
	<authorEmail>traduction@joomla.fr</authorEmail> <!-- will display in manager -->
	<authorUrl>http://joomla.fr</authorUrl> <!-- will display in manager -->
	<copyright>Copyright (C) 2005 - 2015 Joomla.fr and Open Source Matters, Inc. All rights reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
	<url></url>
	<packager></packager>
	<packagerurl></packagerurl>
	<description><![CDATA[<div style="text-align:left;">
<h3>Joomla! 3.4.1 Full French (fr-FR) Language Package - Version 3.4.1v1</h3>
<h3>Paquet de langue Joomla! 3.4.1 français (fr-FR) complet - Version 3.4.1v1</h3>
</div>]]></description>
	<files>
		<file type="language" client="site" id="fr-FR">site_fr-FR.zip</file>
		<file type="language" client="administrator" id="fr-FR">admin_fr-FR.zip</file>
	</files>
	<updateservers>
		<server type="collection" priority="1" name="Accredited Joomla! Translations">http://update.joomla.org/language/translationlist_3.xml</server>
	</updateservers>
</extension>

Obs.: os arquivos do TinyMCE não são mais necessários desde a 3.2. Agora eles nativamente. Se seu idioma estiver faltando, contacte a coordenação da Equipe de Tradução.

Um zip por cliente (site e admin)

  • site_pt-BR.zip
  • admin_pt-BR.zip

Conteúdo do zip do cliente (abaixo é o do admin)

um install.xml

Exemplo para o admin

<extension version="3.4" client="administrator" type="language" method="upgrade"> // change to client="site" if site pack
	<name>French (fr-FR)</name>
	<tag>fr-FR</tag>
	<version>3.4.1.1</version>
	<creationDate>15/05/2013</creationDate>
	<author>French translation team : joomla.fr</author>
	<authorEmail>traduction@joomla.fr</authorEmail>
	<authorUrl>www.joomla.fr</authorUrl>
	<copyright>Copyright (C) 2005 - 2013 joomla.fr et Open Source Matters. Tous droits réservés</copyright>
	<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
	<description>fr-FR administrator language</description>
	<files>
		<filename>index.html</filename>
		<filename>fr-FR.com_admin.ini</filename>
		<filename>fr-FR.com_admin.sys.ini</filename>
		<filename>fr-FR.com_banners.ini</filename>
		<filename>fr-FR.com_banners.sys.ini</filename>
		<filename>fr-FR.com_ajax.ini</filename>
		<filename>fr-FR.com_ajax.sys.ini</filename>
		<filename>fr-FR.com_cache.ini</filename>
		<filename>fr-FR.com_cache.sys.ini</filename>
		<filename>fr-FR.com_categories.ini</filename>
		<filename>fr-FR.com_categories.sys.ini</filename>
		<filename>fr-FR.com_checkin.ini</filename>
		<filename>fr-FR.com_checkin.sys.ini</filename>
		<filename>fr-FR.com_config.ini</filename>
		<filename>fr-FR.com_config.sys.ini</filename>
		<filename>fr-FR.com_contact.ini</filename>
		<filename>fr-FR.com_contact.sys.ini</filename>
		<filename>fr-FR.com_content.ini</filename>
		<filename>fr-FR.com_content.sys.ini</filename>
		<filename>fr-FR.com_contenthistory.ini</filename>
		<filename>fr-FR.com_contenthistory.sys.ini</filename>
		<filename>fr-FR.com_cpanel.ini</filename>
		<filename>fr-FR.com_cpanel.sys.ini</filename>
		<filename>fr-FR.com_finder.ini</filename>
		<filename>fr-FR.com_finder.sys.ini</filename>
		<filename>fr-FR.com_installer.ini</filename>
		<filename>fr-FR.com_installer.sys.ini</filename>
		<filename>fr-FR.com_joomlaupdate.ini</filename>
		<filename>fr-FR.com_joomlaupdate.sys.ini</filename>
		<filename>fr-FR.com_languages.ini</filename>
		<filename>fr-FR.com_languages.sys.ini</filename>
		<filename>fr-FR.com_login.ini</filename>
		<filename>fr-FR.com_login.sys.ini</filename>
		<filename>fr-FR.com_mailto.sys.ini</filename>
		<filename>fr-FR.com_media.ini</filename>
		<filename>fr-FR.com_media.sys.ini</filename>
		<filename>fr-FR.com_menus.ini</filename>
		<filename>fr-FR.com_menus.sys.ini</filename>
		<filename>fr-FR.com_messages.ini</filename>
		<filename>fr-FR.com_messages.sys.ini</filename>
		<filename>fr-FR.com_modules.ini</filename>
		<filename>fr-FR.com_modules.sys.ini</filename>
		<filename>fr-FR.com_newsfeeds.ini</filename>
		<filename>fr-FR.com_newsfeeds.sys.ini</filename>
		<filename>fr-FR.com_plugins.ini</filename>
		<filename>fr-FR.com_plugins.sys.ini</filename>
		<filename>fr-FR.com_postinstall.ini</filename>
		<filename>fr-FR.com_postinstall.sys.ini</filename>
		<filename>fr-FR.com_redirect.ini</filename>
		<filename>fr-FR.com_redirect.sys.ini</filename>
		<filename>fr-FR.com_search.ini</filename>
		<filename>fr-FR.com_search.sys.ini</filename>
		<filename>fr-FR.com_tags.ini</filename>
		<filename>fr-FR.com_tags.sys.ini</filename>
		<filename>fr-FR.com_templates.ini</filename>
		<filename>fr-FR.com_templates.sys.ini</filename>
		<filename>fr-FR.com_users.ini</filename>
		<filename>fr-FR.com_users.sys.ini</filename>
		<filename>fr-FR.com_weblinks.ini</filename>
		<filename>fr-FR.com_weblinks.sys.ini</filename>
		<filename>fr-FR.com_wrapper.ini</filename>
		<filename>fr-FR.com_wrapper.sys.ini</filename>
                <filename>fr-FR.css</filename> <!-- this file can be added in the ADMINISTRATOR pack if one wants to change the fonts used to display the back-end interface.-->
		<filename>fr-FR.ini</filename>
		<filename>fr-FR.lib_joomla.ini</filename>
		<filename>fr-FR.localise.php</filename>
		<filename>fr-FR.mod_custom.ini</filename>
		<filename>fr-FR.mod_custom.sys.ini</filename>
		<filename>fr-FR.mod_feed.ini</filename>
		<filename>fr-FR.mod_feed.sys.ini</filename>
		<filename>fr-FR.mod_latest.ini</filename>
		<filename>fr-FR.mod_latest.sys.ini</filename>
		<filename>fr-FR.mod_logged.ini</filename>
		<filename>fr-FR.mod_logged.sys.ini</filename>
		<filename>fr-FR.mod_login.ini</filename>
		<filename>fr-FR.mod_login.sys.ini</filename>
		<filename>fr-FR.mod_menu.ini</filename>
		<filename>fr-FR.mod_menu.sys.ini</filename>
		<filename>fr-FR.mod_multilangstatus.ini</filename>
		<filename>fr-FR.mod_multilangstatus.sys.ini</filename>
		<filename>fr-FR.mod_popular.ini</filename>
		<filename>fr-FR.mod_popular.sys.ini</filename>
		<filename>fr-FR.mod_quickicon.ini</filename>
		<filename>fr-FR.mod_quickicon.sys.ini</filename>
		<filename>fr-FR.mod_stats_admin.ini</filename>
		<filename>fr-FR.mod_stats_admin.sys.ini</filename>
		<filename>fr-FR.mod_status.ini</filename>
		<filename>fr-FR.mod_status.sys.ini</filename>
		<filename>fr-FR.mod_submenu.ini</filename>
		<filename>fr-FR.mod_submenu.sys.ini</filename>
		<filename>fr-FR.mod_title.ini</filename>
		<filename>fr-FR.mod_title.sys.ini</filename>
		<filename>fr-FR.mod_toolbar.ini</filename>
		<filename>fr-FR.mod_toolbar.sys.ini</filename>
		<filename>fr-FR.mod_version.ini</filename>
		<filename>fr-FR.mod_version.sys.ini</filename>
		<filename>fr-FR.plg_authentication_cookie.ini</filename>
		<filename>fr-FR.plg_authentication_cookie.sys.ini</filename>
		<filename>fr-FR.plg_authentication_gmail.ini</filename>
		<filename>fr-FR.plg_authentication_gmail.sys.ini</filename>
		<filename>fr-FR.plg_authentication_joomla.ini</filename>
		<filename>fr-FR.plg_authentication_joomla.sys.ini</filename>
		<filename>fr-FR.plg_authentication_ldap.ini</filename>
		<filename>fr-FR.plg_authentication_ldap.sys.ini</filename>
		<filename>fr-FR.plg_captcha_recaptcha.ini</filename>
		<filename>fr-FR.plg_captcha_recaptcha.sys.ini</filename>
		<filename>fr-FR.plg_content_emailcloak.ini</filename>
		<filename>fr-FR.plg_content_emailcloak.sys.ini</filename>
		<filename>fr-FR.plg_content_finder.ini</filename>
		<filename>fr-FR.plg_content_finder.sys.ini</filename>
		<filename>fr-FR.plg_content_joomla.ini</filename>
		<filename>fr-FR.plg_content_joomla.sys.ini</filename>
		<filename>fr-FR.plg_content_loadmodule.ini</filename>
		<filename>fr-FR.plg_content_loadmodule.sys.ini</filename>
		<filename>fr-FR.plg_content_pagebreak.ini</filename>
		<filename>fr-FR.plg_content_pagebreak.sys.ini</filename>
		<filename>fr-FR.plg_content_pagenavigation.ini</filename>
		<filename>fr-FR.plg_content_pagenavigation.sys.ini</filename>
		<filename>fr-FR.plg_content_vote.ini</filename>
		<filename>fr-FR.plg_content_vote.sys.ini</filename>
		<filename>fr-FR.plg_editors_codemirror.ini</filename>
		<filename>fr-FR.plg_editors_codemirror.sys.ini</filename>
		<filename>fr-FR.plg_editors_none.ini</filename>
		<filename>fr-FR.plg_editors_none.sys.ini</filename>
		<filename>fr-FR.plg_editors_tinymce.ini</filename>
		<filename>fr-FR.plg_editors_tinymce.sys.ini</filename>
		<filename>fr-FR.plg_editors-xtd_article.ini</filename>
		<filename>fr-FR.plg_editors-xtd_article.sys.ini</filename>
		<filename>fr-FR.plg_editors-xtd_image.ini</filename>
		<filename>fr-FR.plg_editors-xtd_image.sys.ini</filename>
		<filename>fr-FR.plg_editors-xtd_pagebreak.ini</filename>
		<filename>fr-FR.plg_editors-xtd_pagebreak.sys.ini</filename>
		<filename>fr-FR.plg_editors-xtd_readmore.ini</filename>
		<filename>fr-FR.plg_editors-xtd_readmore.sys.ini</filename>
		<filename>fr-FR.plg_extension_joomla.ini</filename>
		<filename>fr-FR.plg_extension_joomla.sys.ini</filename>
		<filename>fr-FR.plg_finder_categories.ini</filename>
		<filename>fr-FR.plg_finder_categories.sys.ini</filename>
		<filename>fr-FR.plg_finder_contacts.ini</filename>
		<filename>fr-FR.plg_finder_contacts.sys.ini</filename>
		<filename>fr-FR.plg_finder_content.ini</filename>
		<filename>fr-FR.plg_finder_content.sys.ini</filename>
		<filename>fr-FR.plg_finder_newsfeeds.ini</filename>
		<filename>fr-FR.plg_finder_newsfeeds.sys.ini</filename>
		<filename>fr-FR.plg_finder_tags.ini</filename>
		<filename>fr-FR.plg_finder_tags.sys.ini</filename>
		<filename>fr-FR.plg_finder_weblinks.ini</filename>
		<filename>fr-FR.plg_finder_weblinks.sys.ini</filename>
		<filename>fr-FR.plg_installer_webinstaller.ini</filename>
		<filename>fr-FR.plg_installer_webinstaller.sys.ini</filename>
		<filename>fr-FR.plg_quickicon_extensionupdate.ini</filename>
		<filename>fr-FR.plg_quickicon_extensionupdate.sys.ini</filename>
		<filename>fr-FR.plg_quickicon_joomlaupdate.ini</filename>
		<filename>fr-FR.plg_quickicon_joomlaupdate.sys.ini</filename>
		<filename>fr-FR.plg_search_categories.ini</filename>
		<filename>fr-FR.plg_search_categories.sys.ini</filename>
		<filename>fr-FR.plg_search_contacts.ini</filename>
		<filename>fr-FR.plg_search_contacts.sys.ini</filename>
		<filename>fr-FR.plg_search_content.ini</filename>
		<filename>fr-FR.plg_search_content.sys.ini</filename>
		<filename>fr-FR.plg_search_newsfeeds.ini</filename>
		<filename>fr-FR.plg_search_newsfeeds.sys.ini</filename>
		<filename>fr-FR.plg_search_tags.ini</filename>
		<filename>fr-FR.plg_search_tags.sys.ini</filename>
		<filename>fr-FR.plg_search_weblinks.ini</filename>
		<filename>fr-FR.plg_search_weblinks.sys.ini</filename>
		<filename>fr-FR.plg_system_cache.ini</filename>
		<filename>fr-FR.plg_system_cache.sys.ini</filename>
		<filename>fr-FR.plg_system_debug.ini</filename>
		<filename>fr-FR.plg_system_debug.sys.ini</filename>
		<filename>fr-FR.plg_system_highlight.ini</filename>
		<filename>fr-FR.plg_system_highlight.sys.ini</filename>
		<filename>fr-FR.plg_system_languagecode.ini</filename>
		<filename>fr-FR.plg_system_languagecode.sys.ini</filename>
		<filename>fr-FR.plg_system_languagefilter.ini</filename>
		<filename>fr-FR.plg_system_languagefilter.sys.ini</filename>
		<filename>fr-FR.plg_system_log.ini</filename>
		<filename>fr-FR.plg_system_log.sys.ini</filename>
		<filename>fr-FR.plg_system_logout.ini</filename>
		<filename>fr-FR.plg_system_logout.sys.ini</filename>
		<filename>fr-FR.plg_system_p3p.ini</filename>
		<filename>fr-FR.plg_system_p3p.sys.ini</filename>
		<filename>fr-FR.plg_system_redirect.ini</filename>
		<filename>fr-FR.plg_system_redirect.sys.ini</filename>
		<filename>fr-FR.plg_system_remember.ini</filename>
		<filename>fr-FR.plg_system_remember.sys.ini</filename>
		<filename>fr-FR.plg_system_sef.ini</filename>
		<filename>fr-FR.plg_system_sef.sys.ini</filename>
		<filename>fr-FR.plg_twofactorauth_totp.ini</filename>
		<filename>fr-FR.plg_twofactorauth_totp.sys.ini</filename>
		<filename>fr-FR.plg_twofactorauth_yubikey.ini</filename>
		<filename>fr-FR.plg_twofactorauth_yubikey.sys.ini</filename>
		<filename>fr-FR.plg_user_contactcreator.ini</filename>
		<filename>fr-FR.plg_user_contactcreator.sys.ini</filename>
		<filename>fr-FR.plg_user_joomla.ini</filename>
		<filename>fr-FR.plg_user_joomla.sys.ini</filename>
		<filename>fr-FR.plg_user_profile.ini</filename>
		<filename>fr-FR.plg_user_profile.sys.ini</filename>
		<filename>fr-FR.tpl_hathor.ini</filename>
		<filename>fr-FR.tpl_hathor.sys.ini</filename>
		<filename>fr-FR.tpl_isis.ini</filename>
		<filename>fr-FR.tpl_isis.sys.ini</filename>
		<filename file="meta">install.xml</filename>
		<filename file="meta">fr-FR.xml</filename>
	</files>
	<media destination="fr-FR">  <!-- If one needs to add a specific calendar -->
	    <filename>index.html</filename>
	    <filename>js/index.html</filename>
	    <filename>js/calendar-setup.js</filename>
	    <filename>js/calendar.js</filename>
	</media>
	<params />
</extension>

Observações:

  • pt-BR.lib_joomla.ini : tenha um cópia em admin e site ou pelo menos em site, se criar um "pacote somente para o site". Confira abaixo.
  • pt-BR.css : Desde a versão 1.7 este arquivo pode ser inserido no pacote ADMINISTRATOR se quiser mudar as fonts exibidas na interface.
  • pt-BR.xml : Note the file="meta" tag, telling it's the basic xml holding info about the pack.
  • install.xml : Obrigatório! Este arquivo permite a desinstalação do idioma. Note file="meta"
  • pt-BR.localise.php : tenha uma cópia em admin e site ou pelo menos em site, se criar "pacote somente para o site". Confira abaixo.
  • Diretório media destination="pt-BR" : Se necessitar colocar um calendário específico

Todos os arquivos INI

Atenção a nova formatação!

  • Aspas duplas devem ser escritas no valor da string como "_QQ_" ou &quot;

pt-BR.xml

<?xml version="1.0" encoding="utf-8"?>
<metafile version="3.2" client="administrator">
    <tag>fr-FR</tag>
	<name>French (fr-FR)</name>
	<version>3.4.1.1</version>
	<creationDate>15/04/2013</creationDate>
	<author>French translation team : joomla.fr</author>
	<authorEmail>traduction@joomla.fr</authorEmail>
	<authorUrl>www.joomla.fr</authorUrl>
	<copyright>Copyright (C) 2005 - 2013 Open Source Matters &amp; Joomla.fr. All rights reserved.</copyright>
	<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
	<description>French administrator language for Joomla 3.0</description>
	<metadata>
		<name>Français (FR)</name>
		<tag>fr-FR</tag>
		<rtl>0</rtl>
		<locale>fr_FR.utf8, fr_FR.UTF-8, fr_FR.UTF-8@euro, fr_FR, fre_FR, fr, france</locale>
		<firstDay>1</firstDay>
		<weekEnd>0,6</weekEnd>
	</metadata>
	<params />
</metafile>

Observações:

  • <locale> a tag ""locale"" é usada para organizar as listas traduzidas que estiverem no servidor.
  • <firstDay>1</firstDay> é usado para o ícone do Calendário para indicar qual é o primeiro dia da semana em um idioma. 0 é domingo, 1 é segunda-feira etc.
  • <weekEnd>0,6</weekEnd> é usado para o Calendário e mostra os dias da semana em cinza. 0,6 é sábado e domingo, 1 seria sexta-feira.

pt-BR.localise.php

Esse arquivo deve estar presente pelo menos no zip do site

Esclarecimento sobre esse arquivo: ele substitui pt-BR.ignore.php e pode ser customizando, dependendo do idioma.

  • Ignora busca de palavras.
  • Define os limites máximos e mínimos para o tamanho das buscas.
  • Define o número de caracteres a exibir no resultado da busca.
  • Define a funcionalidade plural específica de certos idiomas, onde o valor da string pode mudar dependendo da contagem (Por exemplo, Russo).
  • Define custom transliteration (i.e. when NOT using the Unicode URLS parameter in Global Configuration) to ensure proper change of some alphabets to ascii for the alias used when SEF is on. (The transliteration which is now default in 1.7 should take care of all latin-based languages.)
  • Define a custom calendar by adding a function as well as some js files

ALWAYS SAVE THIS FILE AS UTF8 NO BOM if it contains non-ascii glyphs (accented letters, etc.)

Example 1 - Custom transliteration NOT implemented

Example of a basic fr-FR.localise.php (where custom transliteration is NOT implemented)

<?php
/**
 * @version		$Id: fr-FR.localise.php 15628 2010-03-27 05:20:29Z infograf768 $
 * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */

/**
 * fr-FR localise class
 *
 * @package		Joomla.Site
 * @since		1.6
 */
abstract class Fr_FRLocalise {    //// !!!! NOTE the use of Fr_FR for the class !!!  // not the same as your language prefix.
	/**
	 * Returns the potential suffixes for a specific number of items
	 *
	 * @param	int $count  The number of items.
	 * @return	array  An array of potential suffixes.
	 * @since	1.6
	 */
	public static function getPluralSuffixes($count) {
		if ($count == 0) {
			$return =  array('0');
		}
		elseif($count == 1) {
			$return =  array('1');
		}
		else {
			$return = array('MORE');  // Beware, this will be added to a language KEY. It should be in ascii and Uppercase.
		}
		return $return;
	}
	/**
	 * Returns the ignored search words
	 *
	 * @return	array  An array of ignored search words.
	 * @since	1.6
	 */
	public static function getIgnoredSearchWords() {
		$search_ignore = array();
		$search_ignore[] = "et";
		$search_ignore[] = "si";
		$search_ignore[] = "ou";
		return $search_ignore;
	}
	/**
	 * Returns the lower length limit of search words
	 *
	 * @return	integer  The lower length limit of search words.
	 * @since	1.6
	 */
	public static function getLowerLimitSearchWord() {
		return 3;
	}
	/**
	 * Returns the upper length limit of search words
	 *
	 * @return	integer  The upper length limit of search words.
	 * @since	1.6
	 */
	public static function getUpperLimitSearchWord() {
		return 20;
	}
	/**
	 * Returns the number of chars to display when searching
	 *
	 * @return	integer  The number of chars to display when searching.
	 * @since	1.6
	 */
	public static function getSearchDisplayedCharactersNumber() {
		return 200;
	}
}
Example 2 - Custom transliteration implemented

Example of the function to add to file localise.php when custom transliteration is desired

/**
	 * This method processes a string and replaces all accented UTF-8 characters by unaccented
	 * ASCII-7 "equivalents"
	 *
	 * @param	string	$string	The string to transliterate
	 * @return	string	The transliteration of the string
	 * @since	1.6
	 */
	public static function transliterate($string)
		{
		$str = JString::strtolower($string);

		//Specific language transliteration.
		//This one is for latin 1, latin supplement , extended A, Cyrillic, Greek

		$glyph_array = array(
		'a'		=>	'a,à,á,â,ã,ä,å,ā,ă,ą,ḁ,α,ά',
		'ae'	=>	'æ',
		'b'		=>	'β,б',
		'c'		=>	'c,ç,ć,ĉ,ċ,č,ћ,ц',
		'ch'	=>	'ч',
		'd'		=>	'ď,đ,Ð,д,ђ,δ,ð',
		'dz'	=>	'џ',
		'e'		=>	'e,è,é,ê,ë,ē,ĕ,ė,ę,ě,э,ε,έ',
		'f'		=>	'ƒ,ф',
		'g'		=>	'ğ,ĝ,ğ,ġ,ģ,г,γ',
		'h'		=>	'ĥ,ħ,Ħ,х',
		'i'		=>	'i,ì,í,î,ï,ı,ĩ,ī,ĭ,į,и,й,ъ,ы,ь,η,ή',
		'ij'	=>	'ij',
		'j'		=>	'ĵ,j',
		'ja'	=>	'я',
		'ju'	=>	'яю',
		'k'		=>	'ķ,ĸ,κ',
		'l'		=>	'ĺ,ļ,ľ,ŀ,ł,л,λ',
		'lj'	=>	'љ',
		'm'		=>	'μ,м',
		'n'		=>	'ñ,ņ,ň,ʼn,ŋ,н,ν',
		'nj'	=>	'њ',
		'o'		=>	'ò,ó,ô,õ,ø,ō,ŏ,ő,ο,ό,ω,ώ',
		'oe'	=>	'œ,ö',
		'p'		=>	'п,π',
		'ph'	=>	'φ',
		'ps'	=>	'ψ',
		'r'		=>	'ŕ,ŗ,ř,р,ρ,σ,ς',
		's'		=>	'ş,ś,ŝ,ş,š,с',
		'ss'	=>	'ß,ſ',
		'sh'	=>	'ш',
		'shch'	=>	'щ',
		't'		=>	'ţ,ť,ŧ,τ,т',
		'th'	=>	'θ',
		'u'		=>	'u,ù,ú,û,ü,ũ,ū,ŭ,ů,ű,ų,у',
		'v'		=>	'в',
		'w'		=>	'ŵ',
		'x'		=>	'χ,ξ',
		'y'		=>	'ý,þ,ÿ,ŷ',
		'z'		=>	'ź,ż,ž,з,ж,ζ'
		);

		foreach( $glyph_array as $letter => $glyphs ) {
			$glyphs = explode( ',', $glyphs );
			$str = str_replace( $glyphs, $letter, $str );
		}

		return $str;
		}
}
Example 3 - Custom calendar implemented

Here is an example of a function to add in the localise.php file in order to implement a custom calendar for fa-IR (Persian language)

<?php
/**
 * @version		$Id: language.php 15628 2010-03-27 05:20:29Z infograf768 $
 * @copyright	Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
 * @copyright	Copyright (C) 2005 - 2014 JoomlaFarsi.com. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 */


 jimport('joomla.utilities.date');
abstract class Fa_IRLocalise {

	public static function getPluralSuffixes($count) {
		if ($count == 0) 
		{
			$return =  array('0');
		}
		elseif($count == 1) 
		{
			$return =  array('1');
		}
		else 
		{
			$return = array('MORE');
		}
		return $return;
	}

	public static function getIgnoredSearchWords() {
		$search_ignore = array();
		$search_ignore[] = "and";  //change here to fit
		$search_ignore[] = "in"; //change here to fit
		$search_ignore[] = "on"; //change here to fit
		return $search_ignore;
	}

	public static function getLowerLimitSearchWord() {
		return 3;
	}

	public static function getUpperLimitSearchWord() {
		return 20;
	}

	public static function getSearchDisplayedCharactersNumber() {
		return 200;
	}
}


class fa_IRDate extends JDate {
	const DAY_NUMBER	= "\x027\x03";
	const DAY_NUMBER2	= "\x030\x03";
	const DAY_YEAR		= "\x032\x03";
	const MONTH_ABBR	= "\x033\x03";
	const MONTH_NAME	= "\x034\x03";
	const MONTH_NUMBER	= "\x035\x03";
	const MONTH_NUMBER2	= "\x036\x03";
	const MONTH_LENGTH	= "\x037\x03";
	const YEAR_ABBR		= "\x040\x03";
	const YEAR_NAME		= "\x041\x03";
	const AM_LOWER		= "\x042\x03";
	const AM_UPPER		= "\x043\x03";
	const PERSIAN_EPOCH	= 1948320.5;

	protected static $month_names	= array("فروردين","ارديبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند");


	
	public function calendar($format, $local = false, $translate = true)
	{
		// Do string replacements for date format options that can be translated.
		$format = preg_replace('/(^|[^\\\])d/', "\\1".self::DAY_NUMBER2, $format);
		$format = preg_replace('/(^|[^\\\])j/', "\\1".self::DAY_NUMBER, $format);
		$format = preg_replace('/(^|[^\\\])z/', "\\1".self::DAY_YEAR, $format);
		$format = preg_replace('/(^|[^\\\])M/', "\\1".self::MONTH_ABBR, $format);
		$format = preg_replace('/(^|[^\\\])F/', "\\1".self::MONTH_NAME, $format);
		$format = preg_replace('/(^|[^\\\])n/', "\\1".self::MONTH_NUMBER, $format);
		$format = preg_replace('/(^|[^\\\])m/', "\\1".self::MONTH_NUMBER2, $format);
		$format = preg_replace('/(^|[^\\\])t/', "\\1".self::MONTH_LENGTH, $format);
		$format = preg_replace('/(^|[^\\\])y/', "\\1".self::YEAR_ABBR, $format);
		$format = preg_replace('/(^|[^\\\])Y/', "\\1".self::YEAR_NAME, $format);
		$format = preg_replace('/(^|[^\\\])a/', "\\1".self::AM_LOWER, $format);
		$format = preg_replace('/(^|[^\\\])A/', "\\1".self::AM_UPPER, $format);

		// Format the date.
		$return = parent::calendar($format, $local);

		$jd = gregoriantojd($this->month, $this->day, $this->year);
		$jalaliDate = self::jd_to_persian($jd);
		$m = $jalaliDate['mon'];
		$d = $jalaliDate['day'];
		$y = $jalaliDate['year'];

		// Manually modify the strings in the formated time.
		if (strpos($return, self::DAY_NUMBER) !== false) {
			$return = str_replace(self::DAY_NUMBER, $d , $return);
		}
		if (strpos($return, self::DAY_NUMBER2) !== false) {
			$return = str_replace(self::DAY_NUMBER2, sprintf("%02d",$d), $return);
		}
		if (strpos($return, self::DAY_YEAR) !== false) {
			$return = str_replace(self::DAY_YEAR, $jd - self::persian_to_jd(1,1,$y)+1, $return);
		}
		if (strpos($return, self::MONTH_ABBR) !== false) {
			$return = str_replace(self::MONTH_ABBR, self::$month_names[$m-1] , $return);
		}
		if (strpos($return, self::MONTH_NAME) !== false) {
			$return = str_replace(self::MONTH_NAME, self::$month_names[$m-1] , $return);
		}
		if (strpos($return, self::MONTH_NUMBER) !== false) {
			$return = str_replace(self::MONTH_NUMBER, $m , $return);
		}
		if (strpos($return, self::MONTH_NUMBER2) !== false) {
			$return = str_replace(self::MONTH_NUMBER2, sprintf("%02d", $m) , $return);
		}
		if (strpos($return, self::MONTH_LENGTH) !== false) {
			$return = str_replace(self::MONTH_LENGTH, $m < 7 ? 31 : $m < 12 ? 30 : self::leap_persian($y) ? 30 : 29 , $return);
		}
		if (strpos($return, self::YEAR_ABBR) !== false) {
			$return = str_replace(self::YEAR_ABBR, sprintf("%02d",$y % 100), $return);
		}
		if (strpos($return, self::YEAR_NAME) !== false) {
			$return = str_replace(self::YEAR_NAME, $y, $return);
		}
		if (strpos($return, self::AM_LOWER) !== false) {
			$return = str_replace(self::AM_LOWER, $this->format('a',$local)=='pm' ? 'ب ظ' : 'ق ظ', $return);
		}
		if (strpos($return, self::AM_UPPER) !== false) {
			$return = str_replace(self::AM_UPPER, $this->format('a',$local)=='pm' ? 'ب ظ' : 'ق ظ', $return);
		}

		return $return;
	}
	public static function jd_to_persian($jd)

	{

		//var $year, $month, $day, $depoch, $cycle, $cyear, $ycycle,

		//    $aux1, $aux2, $yday;



		$jd = floor($jd) + 0.5;



		$depoch = $jd - self::persian_to_jd(1, 1, 475);

		$cycle = floor($depoch / 1029983);

		$cyear = $depoch % 1029983;

		if ($cyear == 1029982) {

		    $ycycle = 2820;

		} else {

		    $aux1 = floor($cyear / 366);

		    $aux2 = $cyear % 366;

		    $ycycle = floor(((2134 * $aux1) + (2816 * $aux2) + 2815) / 1028522) +

		                $aux1 + 1;

		}

		$year = $ycycle + (2820 * $cycle) + 474;

		if ($year <= 0) {

		    $year--;

		}

		$yday = ($jd - self::persian_to_jd(1, 1, $year)) + 1;

		$month = ($yday <= 186) ? ceil($yday / 31) : ceil(($yday - 6) / 30);

		$day = ($jd - self::persian_to_jd($month, 1, $year)) + 1;

		return array('year'=>$year, 'mon'=>$month,'day'=> $day);

	}
	public static function persian_to_jd($month, $day, $year)

	{

		//var $epbase, $epyear;

		$epbase = $year - (($year >= 0) ? 474 : 473);

		$epyear = 474 + $epbase % 2820;



		return $day +

		        (($month <= 7) ?

		            (($month - 1) * 31) :

		            ((($month - 1) * 30) + 6)

		        ) +

		        floor((($epyear * 682) - 110) / 2816) +

		        ($epyear - 1) * 365 +

		        floor($epbase / 2820) * 1029983 +

		        self::PERSIAN_EPOCH;

	}

	public static function leap_persian($year) {

	    return (((((($year - (($year > 0) ? 474 : 473)) % 2820) + 474) + 38) * 682) % 2816) < 682;

	}

}

Note: One has also to add the right calendar.js files in the package.

The Site-only pack

Concerning those of you providing "site only" packs:


I.e. IT IS NECESSARY TO PROVIDE AN ADMIN PACK WITH ALL FILES, SOME OF THEM SHOULD BE TRANSLATED and to post a unique package as for a real "full" pack (See above).

Why? ==> because some plugin ini files are used in front-end! Here is a typical administrator install.xml in this case. Example for 3.3.x, the files to translate are indicated by =======> :

<?xml version="1.0" encoding="utf-8"?>
<extension version="3.3" client="administrator" type="language" method="upgrade">
	<name>MyLanguage (xx-XX)</name>
	<tag>xx-XX</tag>
	<version>3.3.3.1</version>
	<creationDate>July 2014</creationDate>
	<author>MyLanguage translation team : xx-XX Team/author</author>
	<authorEmail>traduction@mysite.com</authorEmail>
	<authorUrl>http://mysite.com</authorUrl>
	<copyright>Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.</copyright>
	<copyright>Copyright (C) date_year - date_year My Team or name. All rights reserved.</copyright>
	<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
	<description>xx-XX administrator language for 3.3.x</description>
	<files>
		<filename>xx-XX.com_admin.ini</filename>
		<filename>xx-XX.com_admin.sys.ini</filename>
		<filename>xx-XX.com_banners.ini</filename>
		<filename>xx-XX.com_banners.sys.ini</filename>
		<filename>xx-XX.com_ajax.ini</filename>
		<filename>xx-XX.com_ajax.sys.ini</filename>
		<filename>xx-XX.com_cache.ini</filename>
		<filename>xx-XX.com_cache.sys.ini</filename>
		<filename>xx-XX.com_categories.ini</filename>
		<filename>xx-XX.com_categories.sys.ini</filename>
		<filename>xx-XX.com_checkin.ini</filename>
		<filename>xx-XX.com_checkin.sys.ini</filename>
		<filename>xx-XX.com_config.ini</filename>
		<filename>xx-XX.com_config.sys.ini</filename>
		<filename>xx-XX.com_contact.ini</filename>
		<filename>xx-XX.com_contact.sys.ini</filename>
		<filename>xx-XX.com_content.ini</filename>
		<filename>xx-XX.com_content.sys.ini</filename>
		<filename>xx-XX.com_contenthistory.ini</filename>
		<filename>xx-XX.com_contenthistory.sys.ini</filename>
		<filename>xx-XX.com_cpanel.ini</filename>
		<filename>xx-XX.com_cpanel.sys.ini</filename>
		<filename>xx-XX.com_finder.ini</filename>
		<filename>xx-XX.com_finder.sys.ini</filename>
		<filename>xx-XX.com_installer.ini</filename>
		<filename>xx-XX.com_installer.sys.ini</filename>
		<filename>xx-XX.com_joomlaupdate.ini</filename>
		<filename>xx-XX.com_joomlaupdate.sys.ini</filename>
		<filename>xx-XX.com_languages.ini</filename>
		<filename>xx-XX.com_languages.sys.ini</filename>
		<filename>xx-XX.com_login.ini</filename>
		<filename>xx-XX.com_login.sys.ini</filename>
		<filename>xx-XX.com_mailto.sys.ini</filename>
		<filename>xx-XX.com_media.ini</filename>
		<filename>xx-XX.com_media.sys.ini</filename>
		<filename>xx-XX.com_menus.ini</filename>
		<filename>xx-XX.com_menus.sys.ini</filename>
		<filename>xx-XX.com_messages.ini</filename>
		<filename>xx-XX.com_messages.sys.ini</filename>
		<filename>xx-XX.com_modules.ini</filename>
		<filename>xx-XX.com_modules.sys.ini</filename>
		<filename>xx-XX.com_newsfeeds.ini</filename>
		<filename>xx-XX.com_newsfeeds.sys.ini</filename>
		<filename>xx-XX.com_plugins.ini</filename>
		<filename>xx-XX.com_plugins.sys.ini</filename>
		<filename>xx-XX.com_postinstall.ini</filename>
		<filename>xx-XX.com_postinstall.sys.ini</filename>
		<filename>xx-XX.com_redirect.ini</filename>
		<filename>xx-XX.com_redirect.sys.ini</filename>
		<filename>xx-XX.com_search.ini</filename>
		<filename>xx-XX.com_search.sys.ini</filename>
		<filename>xx-XX.com_tags.ini</filename>
		<filename>xx-XX.com_tags.sys.ini</filename>
		<filename>xx-XX.com_templates.ini</filename>
		<filename>xx-XX.com_templates.sys.ini</filename>
		<filename>xx-XX.com_users.ini</filename>
		<filename>xx-XX.com_users.sys.ini</filename>
		<filename>xx-XX.com_weblinks.ini</filename>
		<filename>xx-XX.com_weblinks.sys.ini</filename>
		<filename>xx-XX.com_wrapper.ini</filename>
		<filename>xx-XX.com_wrapper.sys.ini</filename>
		<filename>xx-XX.ini</filename>
		<filename>xx-XX.lib_joomla.ini</filename>
		<filename>xx-XX.localise.php</filename>
		<filename>xx-XX.mod_custom.ini</filename>
		<filename>xx-XX.mod_custom.sys.ini</filename>
		<filename>xx-XX.mod_feed.ini</filename>
		<filename>xx-XX.mod_feed.sys.ini</filename>
		<filename>xx-XX.mod_latest.ini</filename>
		<filename>xx-XX.mod_latest.sys.ini</filename>
		<filename>xx-XX.mod_logged.ini</filename>
		<filename>xx-XX.mod_logged.sys.ini</filename>
		<filename>xx-XX.mod_login.ini</filename>
		<filename>xx-XX.mod_login.sys.ini</filename>
		<filename>xx-XX.mod_menu.ini</filename>
		<filename>xx-XX.mod_menu.sys.ini</filename>
		<filename>xx-XX.mod_multilangstatus.ini</filename>
		<filename>xx-XX.mod_multilangstatus.sys.ini</filename>
		<filename>xx-XX.mod_popular.ini</filename>
		<filename>xx-XX.mod_popular.sys.ini</filename>
		<filename>xx-XX.mod_quickicon.ini</filename>
		<filename>xx-XX.mod_quickicon.sys.ini</filename>
		<filename>xx-XX.mod_stats_admin.ini</filename>
		<filename>xx-XX.mod_stats_admin.sys.ini</filename>
		<filename>xx-XX.mod_status.ini</filename>
		<filename>xx-XX.mod_status.sys.ini</filename>
		<filename>xx-XX.mod_submenu.ini</filename>
		<filename>xx-XX.mod_submenu.sys.ini</filename>
		<filename>xx-XX.mod_title.ini</filename>
		<filename>xx-XX.mod_title.sys.ini</filename>
		<filename>xx-XX.mod_toolbar.ini</filename>
		<filename>xx-XX.mod_toolbar.sys.ini</filename>
		<filename>xx-XX.mod_version.ini</filename>
		<filename>xx-XX.mod_version.sys.ini</filename>
		<filename>xx-XX.plg_authentication_cookie.ini</filename>
		<filename>xx-XX.plg_authentication_cookie.sys.ini</filename>
		<filename>xx-XX.plg_authentication_gmail.ini</filename>
		<filename>xx-XX.plg_authentication_gmail.sys.ini</filename>
		<filename>xx-XX.plg_authentication_joomla.ini</filename>
		<filename>xx-XX.plg_authentication_joomla.sys.ini</filename>
		<filename>xx-XX.plg_authentication_ldap.ini</filename>
		<filename>xx-XX.plg_authentication_ldap.sys.ini</filename>
=========>	<filename>xx-XX.plg_captcha_recaptcha.ini</filename>
		<filename>xx-XX.plg_captcha_recaptcha.sys.ini</filename>
		<filename>xx-XX.plg_content_emailcloak.ini</filename>
		<filename>xx-XX.plg_content_contact.ini</filename>
		<filename>xx-XX.plg_content_contact.sys.ini</filename>
		<filename>xx-XX.plg_content_emailcloak.sys.ini</filename>
		<filename>xx-XX.plg_content_finder.ini</filename>
		<filename>xx-XX.plg_content_finder.sys.ini</filename>
		<filename>xx-XX.plg_content_joomla.ini</filename>
		<filename>xx-XX.plg_content_joomla.sys.ini</filename>
		<filename>xx-XX.plg_content_loadmodule.ini</filename>
		<filename>xx-XX.plg_content_loadmodule.sys.ini</filename>
=========>	<filename>xx-XX.plg_content_pagebreak.ini</filename>
		<filename>xx-XX.plg_content_pagebreak.sys.ini</filename>
		<filename>xx-XX.plg_content_pagenavigation.ini</filename>
		<filename>xx-XX.plg_content_pagenavigation.sys.ini</filename>
=========>	<filename>xx-XX.plg_content_vote.ini</filename>
		<filename>xx-XX.plg_content_vote.sys.ini</filename>
		<filename>xx-XX.plg_editors_codemirror.ini</filename>
		<filename>xx-XX.plg_editors_codemirror.sys.ini</filename>
		<filename>xx-XX.plg_editors_none.ini</filename>
		<filename>xx-XX.plg_editors_none.sys.ini</filename>
		<filename>xx-XX.plg_editors_tinymce.ini</filename>
		<filename>xx-XX.plg_editors_tinymce.sys.ini</filename>
=========>	<filename>xx-XX.plg_editors-xtd_article.ini</filename>
		<filename>xx-XX.plg_editors-xtd_article.sys.ini</filename>
=========>	<filename>xx-XX.plg_editors-xtd_image.ini</filename>
		<filename>xx-XX.plg_editors-xtd_image.sys.ini</filename>
=========>	<filename>xx-XX.plg_editors-xtd_pagebreak.ini</filename>
		<filename>xx-XX.plg_editors-xtd_pagebreak.sys.ini</filename>
=========>	<filename>xx-XX.plg_editors-xtd_readmore.ini</filename>
		<filename>xx-XX.plg_editors-xtd_readmore.sys.ini</filename>
		<filename>xx-XX.plg_extension_joomla.ini</filename>
		<filename>xx-XX.plg_extension_joomla.sys.ini</filename>
=========>	<filename>xx-XX.plg_finder_categories.ini</filename>
		<filename>xx-XX.plg_finder_categories.sys.ini</filename>
=========>	<filename>xx-XX.plg_finder_contacts.ini</filename>
		<filename>xx-XX.plg_finder_contacts.sys.ini</filename>
=========>	<filename>xx-XX.plg_finder_content.ini</filename>
		<filename>xx-XX.plg_finder_content.sys.ini</filename>
=========>	<filename>xx-XX.plg_finder_newsfeeds.ini</filename>
		<filename>xx-XX.plg_finder_newsfeeds.sys.ini</filename>
=========>	<filename>xx-XX.plg_finder_tags.ini</filename>
		<filename>xx-XX.plg_finder_tags.sys.ini</filename>
=========>	<filename>xx-XX.plg_finder_weblinks.ini</filename>
		<filename>xx-XX.plg_finder_weblinks.sys.ini</filename>
		<filename>xx-XX.plg_installer_webinstaller.ini</filename>
		<filename>xx-XX.plg_installer_webinstaller.sys.ini</filename>
		<filename>xx-XX.plg_quickicon_extensionupdate.ini</filename>
		<filename>xx-XX.plg_quickicon_extensionupdate.sys.ini</filename>
		<filename>xx-XX.plg_quickicon_joomlaupdate.ini</filename>
		<filename>xx-XX.plg_quickicon_joomlaupdate.sys.ini</filename>
=========>	<filename>xx-XX.plg_search_categories.ini</filename>
		<filename>xx-XX.plg_search_categories.sys.ini</filename>
=========>	<filename>xx-XX.plg_search_contacts.ini</filename>
		<filename>xx-XX.plg_search_contacts.sys.ini</filename>
=========>	<filename>xx-XX.plg_search_content.ini</filename>
		<filename>xx-XX.plg_search_content.sys.ini</filename>
=========>	<filename>xx-XX.plg_search_newsfeeds.ini</filename>
		<filename>xx-XX.plg_search_newsfeeds.sys.ini</filename>
=========>	<filename>xx-XX.plg_search_tags.ini</filename>
		<filename>xx-XX.plg_search_tags.sys.ini</filename>
=========>	<filename>xx-XX.plg_search_weblinks.ini</filename>
		<filename>xx-XX.plg_search_weblinks.sys.ini</filename>
		<filename>xx-XX.plg_system_cache.ini</filename>
		<filename>xx-XX.plg_system_cache.sys.ini</filename>
		<filename>xx-XX.plg_system_debug.ini</filename>
		<filename>xx-XX.plg_system_debug.sys.ini</filename>
		<filename>xx-XX.plg_system_highlight.ini</filename>
		<filename>xx-XX.plg_system_highlight.sys.ini</filename>
		<filename>xx-XX.plg_system_languagecode.ini</filename>
		<filename>xx-XX.plg_system_languagecode.sys.ini</filename>
		<filename>xx-XX.plg_system_languagefilter.ini</filename>
		<filename>xx-XX.plg_system_languagefilter.sys.ini</filename>
		<filename>xx-XX.plg_system_log.ini</filename>
		<filename>xx-XX.plg_system_log.sys.ini</filename>
		<filename>xx-XX.plg_system_logout.ini</filename>
		<filename>xx-XX.plg_system_logout.sys.ini</filename>
		<filename>xx-XX.plg_system_p3p.ini</filename>
		<filename>xx-XX.plg_system_p3p.sys.ini</filename>
		<filename>xx-XX.plg_system_redirect.ini</filename>
		<filename>xx-XX.plg_system_redirect.sys.ini</filename>
		<filename>xx-XX.plg_system_remember.ini</filename>
		<filename>xx-XX.plg_system_remember.sys.ini</filename>
		<filename>xx-XX.plg_system_sef.ini</filename>
		<filename>xx-XX.plg_system_sef.sys.ini</filename>
		<filename>xx-XX.plg_twofactorauth_totp.ini</filename>
		<filename>xx-XX.plg_twofactorauth_totp.sys.ini</filename>
		<filename>xx-XX.plg_twofactorauth_yubikey.ini</filename>
		<filename>xx-XX.plg_twofactorauth_yubikey.sys.ini</filename>
		<filename>xx-XX.plg_user_contactcreator.ini</filename>
		<filename>xx-XX.plg_user_contactcreator.sys.ini</filename>
		<filename>xx-XX.plg_user_joomla.ini</filename>
		<filename>xx-XX.plg_user_joomla.sys.ini</filename>
=========>	<filename>xx-XX.plg_user_profile.ini</filename>
		<filename>xx-XX.plg_user_profile.sys.ini</filename>
		<filename>xx-XX.tpl_hathor.ini</filename>
		<filename>xx-XX.tpl_hathor.sys.ini</filename>
		<filename>xx-XX.tpl_isis.ini</filename>
		<filename>xx-XX.tpl_isis.sys.ini</filename>
=========>	<filename file="meta">install.xml</filename>
=========>	<filename file="meta">xx-XX.xml</filename>
	</files>
	<params />
</extension>

For the unstranslated files, just copy the en-GB ones and change the language prefix.

O que não traduzir

Não traduza as linhas a seguir:

  • No arquivo pt-BR.ini = strings que começam com "JHELP_COMPONENTS_"

Exemplo:

JHELP_COMPONENTS_MESSAGING_INBOX="Components_Messaging_Inbox"

They are used for mapping the help. When a specific wiki for help per language is available, they will be functional.