The Hubzilla
 All Classes Namespaces Files Functions Variables Pages
language.php File Reference

Translation support. More...

Functions

 get_browser_language ()
 Get the browser's submitted preferred languages. More...
 
 get_best_language ()
 Returns the best language for which also a translation exists. More...
 
 push_lang ($language)
 
 pop_lang ()
 
 load_translation_table ($lang, $install=false)
 Load string translation table for alternate language. More...
 
 t ($s, $ctx= '')
 Translate string if translation exists. More...
 
 translate_projectname ($s)
 translate product name Merging strings from different project names is problematic so we'll do that with a string replacement More...
 
 tt ($singular, $plural, $count, $ctx= '')
 
 string_plural_select_default ($n)
 Provide a fallback which will not collide with a function defined in any language file. More...
 
 detect_language ($s)
 Takes a string and tries to identify the language. More...
 
 get_language_name ($s, $l=null)
 Returns the display name of a given language code. More...
 
 language_list ()
 
 lang_selector ()
 

Detailed Description

Translation support.

This file contains functions to work with translations and other language related tasks.

Function Documentation

detect_language (   $s)

Takes a string and tries to identify the language.

It uses the pear library Text_LanguageDetect and it can identify 52 human languages. It returns the identified languges and a confidence score for each.

Strings need to have a min length config['system']['language_detect_min_length'] and you can influence the confidence that must be met before a result will get returned through config['system']['language_detect_min_confidence'].

See Also
http://pear.php.net/package/Text_LanguageDetect
Parameters
string$sA string to examine
Returns
string Language code in 2-letter ISO 639-1 (en, de, fr) format

Referenced by item_store(), item_store_update(), and post_is_importable().

get_best_language ( )

Returns the best language for which also a translation exists.

This function takes the results from get_browser_language() and compares it with the available translations and returns the best fitting language for which there exists a translation.

If there is no match fall back to config['system']['language']

Returns
Language code in 2-letter ISO 639-1 (en).

Referenced by create_account(), and Zotlabs\Web\WebServer\run().

get_browser_language ( )

Get the browser's submitted preferred languages.

This functions parses the HTTP_ACCEPT_LANGUAGE header sent by the browser and extracts the preferred languages and their priority.

Get the language setting directly from system variables, bypassing get_config() as database may not yet be configured.

If possible, we use the value from the browser.

Returns
array with ordered list of preferred languages from browser

Referenced by get_best_language().

get_language_name (   $s,
  $l = null 
)

Returns the display name of a given language code.

By default we use the localized language name. You can switch the result to any language with the optional 2nd parameter $l.

$s and $l should be in 2-letter ISO 639-1 format.

If nothing could be looked up it returns $s.

Parameters
string$sLanguage code to look up
string$l(optional) In which language to return the name
Returns
string with the language name, or $s if unrecognized

Referenced by lang_selector(), and language_list().

lang_selector ( )

Referenced by Zotlabs\Module\Lang\get().

language_list ( )
load_translation_table (   $lang,
  $install = false 
)

Load string translation table for alternate language.

Parameters
string$langlanguage code in 2-letter ISO 639-1 (en, de, fr) format
boolean$install(optional) default false

Referenced by push_lang(), and Zotlabs\Web\WebServer\run().

string_plural_select_default (   $n)

Provide a fallback which will not collide with a function defined in any language file.

Parameters
int$n
Returns
boolean
t (   $s,
  $ctx = '' 
)

Translate string if translation exists.

Parameters
string$sstring that should get translated
string$ctx(optional) context to appear in po file
Returns
translated string if exists, otherwise return $s

Referenced by Zotlabs\Lib\DB_Upgrade\__construct(), Zotlabs\Lib\Permcat\__construct(), Zotlabs\Lib\PermissionDescription\__construct(), Zotlabs\Web\Router\__construct(), account_allow(), account_deny(), account_remove(), Zotlabs\Module\Admin\admin_page_summary(), advanced_profile(), alt_pager(), Zotlabs\Lib\Apps\app_render(), Zotlabs\Lib\Apps\app_store(), app_tagblock(), Zotlabs\Lib\Apps\app_update(), article_catblock(), articlecategories_widget(), attach_by_hash(), attach_by_hash_nodata(), attach_count_files(), attach_list_files(), attach_mkdir(), attach_mkdirp(), attach_store(), bb_replace_images(), bb_to_markdown_share(), Zotlabs\Lib\NativeWikiPage\bbcode(), bbcode(), bookmark_add(), builtin_activity_puller(), card_catblock(), cardcategories_widget(), catblock(), categories_widget(), cert_bad_email(), change_channel_keys(), channel_apps(), channel_change_address(), check_account_email(), check_account_invite(), check_cron_broken(), check_form_security_std_err_msg(), Zotlabs\Module\Setup\check_funcs(), Zotlabs\Module\Setup\check_htaccess(), Zotlabs\Module\Setup\check_htconfig(), Zotlabs\Module\Setup\check_keys(), Zotlabs\Module\Setup\check_php(), Zotlabs\Module\Setup\check_phpconfig(), Zotlabs\Module\Setup\check_smarty3(), Zotlabs\Module\Setup\check_store(), Zotlabs\Lib\NativeWikiPage\commit(), common_friends_visitor_widget(), Zotlabs\Lib\NativeWikiPage\compare_page(), construct_page(), contact_block(), contact_poll_interval(), conversation(), Zotlabs\Lib\Chatroom\create(), create_account(), create_identity(), Zotlabs\Widget\Wiki_pages\create_missing_page(), Zotlabs\Lib\NativeWikiPage\create_page(), datetimesel(), Zotlabs\Module\Cloud\DAVException(), day_translate(), Zotlabs\Lib\NativeWikiPage\delete_page(), Zotlabs\Lib\NativeWiki\delete_wiki(), design_tools(), Zotlabs\Lib\Chatroom\destroy(), dir_sort_links(), dir_tagblock(), dob(), drop_item(), Zotlabs\Module\Embedphotos\embedphotos_widget_album(), Zotlabs\Lib\Chatroom\enter(), event_store_item(), feed_get_reshare(), fileas_widget(), findpeople_widget(), Zotlabs\Theme\RedbasicConfig\form(), Zotlabs\Lib\Enotify\format(), format_categories(), format_event_html(), format_event_obj(), format_filer(), format_like(), gender_icon(), gender_selector(), gender_selector_min(), Zotlabs\Module\Manage\get(), Zotlabs\Module\Pubsites\get(), Zotlabs\Module\Achievements\get(), Zotlabs\Module\Dreport\get(), Zotlabs\Module\Lockview\get(), Zotlabs\Module\Notifications\get(), Zotlabs\Module\Regmod\get(), Zotlabs\Module\Service_limits\get(), Zotlabs\Module\Viewsrc\get(), Zotlabs\Module\Xchan\get(), Zotlabs\Module\Chanview\get(), Zotlabs\Module\Apps\get(), Zotlabs\Module\Probe\get(), Zotlabs\Module\Pubstream\get(), Zotlabs\Module\Moderate\get(), Zotlabs\Module\Admin\Queue\get(), Zotlabs\Module\Article_edit\get(), Zotlabs\Module\Card_edit\get(), Zotlabs\Module\Filer\get(), Zotlabs\Module\Like\get(), Zotlabs\Module\Message\get(), Zotlabs\Module\Admin\Dbsync\get(), Zotlabs\Module\Subthread\get(), Zotlabs\Module\Tagger\get(), Zotlabs\Module\Editpost\get(), Zotlabs\Module\Search\get(), Zotlabs\Module\Apporder\get(), Zotlabs\Module\Display\get(), Zotlabs\Module\Sharedwithme\get(), Zotlabs\Module\Siteinfo\get(), Zotlabs\Module\Dirsearch\get(), Zotlabs\Module\Help\get(), Zotlabs\Module\Fbrowser\get(), Zotlabs\Module\Oexchange\get(), Zotlabs\Module\Viewconnections\get(), Zotlabs\Module\Block\get(), Zotlabs\Module\Articles\get(), Zotlabs\Module\Cards\get(), Zotlabs\Module\Connections\get(), Zotlabs\Module\Suggest\get(), Zotlabs\Module\Profperm\get(), Zotlabs\Module\Pdledit\get(), Zotlabs\Module\Layouts\get(), Zotlabs\Module\Common\get(), Zotlabs\Module\Editlayout\get(), Zotlabs\Module\Editblock\get(), Zotlabs\Module\Editwebpage\get(), Zotlabs\Module\Settings\Features\get(), Zotlabs\Module\Webpages\get(), Zotlabs\Module\Api\get(), Zotlabs\Module\Blocks\get(), Zotlabs\Module\Network\get(), Zotlabs\Module\Hq\get(), Zotlabs\Module\Rpost\get(), Zotlabs\Module\Settings\Featured\get(), Zotlabs\Module\Notify\get(), Zotlabs\Module\Wiki\get(), Zotlabs\Module\Admin\Logs\get(), Zotlabs\Module\Admin\Themes\get(), Zotlabs\Module\Admin\Features\get(), Zotlabs\Module\Pconfig\get(), Zotlabs\Module\Settings\Permcats\get(), Zotlabs\Module\Admin\get(), Zotlabs\Module\Removeaccount\get(), Zotlabs\Module\Filestorage\get(), Zotlabs\Module\Removeme\get(), Zotlabs\Module\Cal\get(), Zotlabs\Module\Uexport\get(), Zotlabs\Module\Rbmark\get(), Zotlabs\Module\Home\get(), Zotlabs\Module\Admin\Account_edit\get(), Zotlabs\Module\Admin\Security\get(), Zotlabs\Module\Settings\get(), Zotlabs\Module\Admin\Profs\get(), Zotlabs\Module\Tagrm\get(), Zotlabs\Module\Admin\Channels\get(), Zotlabs\Module\Lostpass\get(), Zotlabs\Module\Directory\get(), Zotlabs\Module\Bookmarks\get(), Zotlabs\Module\Changeaddr\get(), Zotlabs\Module\Channel\get(), Zotlabs\Module\Group\get(), Zotlabs\Module\Menu\get(), Zotlabs\Module\Chatsvc\get(), Zotlabs\Module\Profile\get(), Zotlabs\Module\Admin\Accounts\get(), Zotlabs\Module\Sources\get(), Zotlabs\Module\Rmagic\get(), Zotlabs\Module\Ratings\get(), Zotlabs\Module\Settings\Oauth\get(), Zotlabs\Module\Connect\get(), Zotlabs\Module\Settings\Tokens\get(), Zotlabs\Module\Locs\get(), Zotlabs\Module\Appman\get(), Zotlabs\Module\Chat\get(), Zotlabs\Module\Invite\get(), Zotlabs\Module\Settings\Account\get(), Zotlabs\Module\Mitem\get(), Zotlabs\Module\New_channel\get(), Zotlabs\Module\Settings\Display\get(), Zotlabs\Module\Rate\get(), Zotlabs\Module\Mood\get(), Zotlabs\Module\Import_items\get(), Zotlabs\Module\Mail\get(), Zotlabs\Module\Poke\get(), Zotlabs\Module\Admin\Site\get(), Zotlabs\Module\Page\get(), Zotlabs\Module\Setup\get(), Zotlabs\Module\Defperms\get(), Zotlabs\Module\Register\get(), Zotlabs\Module\Thing\get(), Zotlabs\Module\Events\get(), Zotlabs\Module\Admin\Plugins\get(), Zotlabs\Module\Cover_photo\get(), Zotlabs\Module\Profile_photo\get(), Zotlabs\Module\Settings\Channel\get(), Zotlabs\Module\Connedit\get(), Zotlabs\Module\Import\get(), Zotlabs\Module\Photos\get(), Zotlabs\Module\Profiles\get(), Zotlabs\Module\Item\get(), Zotlabs\Lib\ThreadItem\get_comment_box(), get_cover_photo(), get_features(), get_help_content(), get_mood_verbs(), Zotlabs\Lib\NativeWikiPage\get_page_content(), Zotlabs\Lib\PermissionDescription\get_permission_description(), Zotlabs\Lib\PermissionDescription\get_permission_origin_description(), get_plink(), get_poke_verbs(), get_post_aclDialogDescription(), Zotlabs\Theme\RedbasicConfig\get_schemas(), Zotlabs\Lib\ThreadItem\get_template_data(), get_timezones(), getIconFromType(), group_add(), group_side(), identity_check_service_class(), Zotlabs\Module\Import\import_account(), import_author_rss(), import_author_unknown(), import_channel(), import_channel_photo(), import_xchan(), Zotlabs\Module\Hcard\init(), Zotlabs\Module\Bookmarks\init(), Zotlabs\Module\Magic\init(), Zotlabs\Module\Ratings\init(), Zotlabs\Module\Common\init(), Zotlabs\Module\Follow\init(), Zotlabs\Module\Mitem\init(), Zotlabs\Module\Page\init(), Zotlabs\Module\Profiles\init(), Zotlabs\Module\Attach\init(), Zotlabs\Module\Impel\init(), Zotlabs\Module\Mood\init(), Zotlabs\Module\Chat\init(), Zotlabs\Module\Network\init(), Zotlabs\Module\Connect\init(), Zotlabs\Module\Profile\init(), Zotlabs\Module\Thing\init(), Zotlabs\Module\Wiki\init(), Zotlabs\Module\Regdir\init(), Zotlabs\Module\Channel\init(), Zotlabs\Module\Ping\init(), Zotlabs\Module\Acl\init(), Zotlabs\Module\Poke\init(), dba_driver\install(), Zotlabs\Module\Item\item_check_service_class(), item_create_edit_activity(), item_post_type(), items_fetch(), lang_selector(), layout_select(), legal_webbie_text(), Zotlabs\Lib\Techlevels\levels(), Zotlabs\Module\Setup\load_database(), Zotlabs\Lib\Permcat\load_permcats(), localize_item(), login(), mail_prepare_binary(), Zotlabs\Module\Setup\manual_config(), marital_selector(), marital_selector_min(), menu_render(), mimetype_select(), mini_group_select(), nav(), network_to_name(), new_contact(), obj_verbs(), oembed_bbcode2html(), oembed_format_object(), oembed_iframe(), owt_init(), Zotlabs\Lib\NativeWikiPage\page_list(), paginate(), parseIdentityAwareHTML(), Zotlabs\Module\Pconfig\pconfig_form(), pdl_selector(), Zotlabs\Access\Permissions\Perms(), photo_upload(), photos_album_widget(), populate_acl(), Zotlabs\Module\Settings\Account\post(), Zotlabs\Module\Pdledit\post(), Zotlabs\Module\Removeaccount\post(), Zotlabs\Module\Removeme\post(), Zotlabs\Module\Sources\post(), Zotlabs\Module\Changeaddr\post(), Zotlabs\Module\Settings\Featured\post(), Zotlabs\Module\Locs\post(), Zotlabs\Module\Lostpass\post(), Zotlabs\Module\Admin\Account_edit\post(), Zotlabs\Module\Settings\Permcats\post(), Zotlabs\Module\Tagrm\post(), Zotlabs\Module\Settings\Tokens\post(), Zotlabs\Module\Settings\Oauth\post(), Zotlabs\Module\Filestorage\post(), Zotlabs\Module\Group\post(), Zotlabs\Module\Pconfig\post(), Zotlabs\Module\Appman\post(), Zotlabs\Module\Settings\Channel\post(), Zotlabs\Module\Admin\Site\post(), Zotlabs\Module\Import_items\post(), Zotlabs\Module\Wall_upload\post(), Zotlabs\Module\Events\post(), Zotlabs\Module\Invite\post(), Zotlabs\Module\Mail\post(), Zotlabs\Module\Admin\Logs\post(), Zotlabs\Module\Admin\Themes\post(), Zotlabs\Module\Menu\post(), Zotlabs\Module\Api\post(), Zotlabs\Module\Rmagic\post(), Zotlabs\Module\Item\post(), Zotlabs\Module\Rbmark\post(), Zotlabs\Module\Connect\post(), Zotlabs\Module\Mitem\post(), Zotlabs\Module\Register\post(), Zotlabs\Module\Cover_photo\post(), Zotlabs\Module\Defperms\post(), Zotlabs\Module\Profile_photo\post(), Zotlabs\Module\Photos\post(), Zotlabs\Module\Connedit\post(), Zotlabs\Module\New_channel\post(), Zotlabs\Module\Profiles\post(), Zotlabs\Module\Cdav\post(), Zotlabs\Module\Webpages\post(), Zotlabs\Module\Wiki\post(), post_activity_item(), prepare_binary(), profile_activity(), profile_edit_menu(), profile_load(), profile_sidebar(), profile_tabs(), relative_date(), remote_login(), Zotlabs\Lib\NativeWikiPage\rename_page(), Zotlabs\Lib\NativeWikiPage\render_page_history(), Zotlabs\Access\PermissionRoles\roles(), Zotlabs\Web\WebServer\run(), Zotlabs\Lib\NativeWikiPage\save_page(), scale_external_images(), search(), searchbox(), Zotlabs\Module\Cover_photo\send_cover_photo_activity(), send_message(), send_profile_photo_activity(), send_reg_approval_email(), send_register_success_email(), sexpref_selector(), sexpref_selector_min(), Zotlabs\Lib\Enotify\submit(), sync_locations(), tagblock(), theme_attachments(), thread_action_menu(), thread_author_menu(), timezone_cmp(), todo_stat(), translate_scope(), Zotlabs\Lib\Apps\translate_system_apps(), translate_type(), update_birthdays(), Zotlabs\Lib\NativeWiki\update_wiki(), upgrade_bool_message(), upgrade_link(), upgrade_message(), validate_channelname(), vcard_from_xchan(), vcard_translate_type(), Zotlabs\Zot\Auth\Verify(), verify_email_address(), website_portation_tools(), Zotlabs\Module\Setup\what_next(), Zotlabs\Widget\Bookmarkedchats\widget(), Zotlabs\Widget\Forums\widget(), Zotlabs\Widget\Hq_controls\widget(), Zotlabs\Widget\Settings_menu\widget(), Zotlabs\Widget\Savedsearch\widget(), Zotlabs\Widget\Notifications\widget(), Zotlabs\Widget\Cover_photo\widget(), Zotlabs\Widget\Admin\widget(), Zotlabs\Widget\Notes\widget(), Zotlabs\Widget\Chatroom_list\widget(), Zotlabs\Widget\Appcategories\widget(), Zotlabs\Widget\Conversations\widget(), Zotlabs\Widget\Affinity\widget(), Zotlabs\Widget\Rating\widget(), Zotlabs\Widget\Suggestedchats\widget(), Zotlabs\Widget\Eventstools\widget(), Zotlabs\Widget\Wiki_list\widget(), Zotlabs\Widget\Mailmenu\widget(), Zotlabs\Widget\Activity\widget(), Zotlabs\Widget\Wiki_page_history\widget(), Zotlabs\Widget\Follow\widget(), Zotlabs\Widget\Archive\widget(), Zotlabs\Widget\Sitesearch\widget(), Zotlabs\Widget\Filer\widget(), Zotlabs\Widget\Photo_rand\widget(), Zotlabs\Widget\Cdav\widget(), Zotlabs\Widget\Chatroom_members\widget(), Zotlabs\Widget\Pubsites\widget(), Zotlabs\Widget\Portfolio\widget(), Zotlabs\Widget\Album\widget(), Zotlabs\Widget\Tasklist\widget(), Zotlabs\Widget\Suggestions\widget(), Zotlabs\Widget\Tagcloud\widget(), Zotlabs\Widget\Photo\widget(), Zotlabs\Widget\Wiki_pages\widget(), wtagblock(), z_readdir(), and zotinfo().

translate_projectname (   $s)

translate product name Merging strings from different project names is problematic so we'll do that with a string replacement

Referenced by get_help_content(), and t().

tt (   $singular,
  $plural,
  $count,
  $ctx = '' 
)