mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
1018 lines
35 KiB
Plaintext
1018 lines
35 KiB
Plaintext
/*******************************************************************************
|
|
This file uses the following conventions:
|
|
- End of line character: char(10) (Unix style)
|
|
- Encoding: UTF-8 (without Byte Order Mark)
|
|
- Tabs: not supported
|
|
- Word-wrap: not recommended
|
|
|
|
DO NOT EDIT THIS FILE UNLESS INSTRUCTED
|
|
|
|
The contents of this file are volatile and will change with each release.
|
|
Any change you make below will be lost whenever you upgrade.
|
|
If you want to make changes and preserve them between versions, add them to [[Options/Config_script]]
|
|
|
|
However, the syntax itself is volatile, and future commands may be changed or deleted.
|
|
There will be no backward compatibility.
|
|
*******************************************************************************/
|
|
app.scripts.fail_if_unhandled = 'n';
|
|
|
|
/*******************************************************************************
|
|
gui (bootup)
|
|
********************************************************************************
|
|
these values should be declared early (at the top of the file)
|
|
------------------------------------------------------------------------------*/
|
|
app.gui {
|
|
kit = 'swt'; // 'swt' is the only supported value; should only be set once
|
|
browser_type = 'mozilla'; // 'mozilla' or 'webkit'
|
|
xul_runner_path = '~{<>bin_plat_dir<>}xulrunner'; // path should be set to xulrunner location; '~{<>bin_plat_dir<>}xulrunner' defaults to '/xowa/bin/platform_name/xulrunner' (EX: on Windows 'C:\xowa\bin\windows\xulrunner')
|
|
}
|
|
|
|
/*******************************************************************************
|
|
files: apps
|
|
********************************************************************************
|
|
defines which apps open which files
|
|
moved to /xowa/user/[USER]/app/cfg/os.gfs; DATE:2017-01-01
|
|
------------------------------------------------------------------------------*/
|
|
app.scripts.run_file_by_type('xowa.user.os');
|
|
|
|
/*******************************************************************************
|
|
files: ext_rules
|
|
********************************************************************************
|
|
- view_max: max size of file to be automatically downloaded when viewing page
|
|
for most cases, alternate between 1 GB (always download) and 0 GB (never download)
|
|
with the rules below, images are downloaded, but ogg, oga, ogv are not
|
|
if you set oga, ogg, and ogv to 1 GB, then files of that type will be automatically downloaded when viewing the page. this will probably be a hindrance.
|
|
- make_max: max size of file to be made during offline image building
|
|
same as view max: use 1 GB and 0 GB
|
|
these only apply to the offline image building process. they have no effect when viewing wiki articles.
|
|
------------------------------------------------------------------------------*/
|
|
app.files.ext_rules.set('img_only') {
|
|
set('png' ) {make_max = '1 GB'; view_max = '1 GB';}
|
|
set('jpg' ) {make_max = '1 GB'; view_max = '1 GB';}
|
|
set('jpeg') {make_max = '1 GB'; view_max = '1 GB';}
|
|
set('gif' ) {make_max = '1 GB'; view_max = '1 GB';}
|
|
set('tif' ) {make_max = '1 GB'; view_max = '1 GB';}
|
|
set('tiff') {make_max = '1 GB'; view_max = '1 GB';}
|
|
set('svg' ) {make_max = '1 GB'; view_max = '1 GB';}
|
|
set('djvu') {make_max = '0 GB'; view_max = '0 GB';}
|
|
set('pdf' ) {make_max = '0 GB'; view_max = '0 GB';}
|
|
set('mid' ) {make_max = '0 GB'; view_max = '0 GB';}
|
|
set('oga' ) {make_max = '0 GB'; view_max = '0 GB';}
|
|
set('ogg' ) {make_max = '0 GB'; view_max = '0 GB';}
|
|
set('ogv' ) {make_max = '0 GB'; view_max = '0 GB';}
|
|
set('webm') {make_max = '0 GB'; view_max = '0 GB';}
|
|
set('' ) {make_max = '0 GB'; view_max = '0 GB';} // '' indicates all other files
|
|
}
|
|
|
|
/*******************************************************************************
|
|
miscellaneous
|
|
********************************************************************************
|
|
------------------------------------------------------------------------------*/
|
|
app.log {
|
|
archive_dirs_max = 8;
|
|
}
|
|
|
|
app.sys_cfg.free_mem_when = '10 MB'; // empties cache when free memory is less than stated amount
|
|
|
|
app.gui.html {
|
|
auto_focus_id = ''; // id to auto-focus when page first loads; set to '' for no auto-focus or ' first_anchor' to focus first anchor (the non-conventional leading space is to create a unique key that would not collide with any valid ids)
|
|
}
|
|
|
|
/*******************************************************************************
|
|
wiki init: commons
|
|
********************************************************************************
|
|
note that commons must always be set up (since other wikis refer to its repo)
|
|
------------------------------------------------------------------------------*/
|
|
/*
|
|
defines repos across the application (app.files.repos)
|
|
- each repo is defined with three arguments
|
|
1) key user-defined key EX: src_http_commons
|
|
2) path path to images EX: https://upload.wikimedia.org/wikipedia/commons/
|
|
3) wiki_key name of wiki which has info on the file in its "File" namespace EX: commons.wikimedia.org
|
|
- other attributes can be set on a repo
|
|
fsys_: 'wnt' signifies that *, " and other invalid windows file characters in the wikimedia file name are replaced with _; necessary for windows; optional for other os's
|
|
ext_rules: key to ext_rule set; see section below
|
|
tarball: 'y' means that files are coming from extracted Wikimedia tarball on local hard-drive (as opposed to the online Wikimedia servers)
|
|
*/
|
|
app.files.repos {
|
|
set('src_http_commons', 'https://upload.wikimedia.org/wikipedia/commons/' , 'commons.wikimedia.org' ).tid_('comm').ext_rules_('img_only');
|
|
//set('src_http_commons', 'W:\wikipedia\commons\' , 'commons.wikimedia.org').fsys_('wnt').tarball_('y').ext_rules_('img_only');
|
|
set('trg_file_commons', 'commons.wikimedia.org' , 'commons.wikimedia.org' ).tid_('comm').fsys_('wnt').primary_('y');
|
|
}
|
|
|
|
/*
|
|
defines repo-pairs for a wiki. (app.wikis.get('~{wiki_key}').files.repos)
|
|
- each repo-pair is defined with two arguments
|
|
1) source_key repo_key indicating where the files are
|
|
2) target_get repo_key indicating where the files should be copied to
|
|
*/
|
|
app.wikis.get('commons.wikimedia.org').files.repos {
|
|
add('src_http_commons', 'trg_file_commons');
|
|
}
|
|
|
|
//app.wikis.get('en.wikipedia.org').files.cfg_download.redownload_('missing');
|
|
|
|
/*******************************************************************************
|
|
dynamic wiki script: all wikis
|
|
********************************************************************************
|
|
builds a script that runs when a wiki is first initialized.
|
|
Note that initialization occurs when the first article is retrieved from a wiki
|
|
(i.e.: wiki initialization does not occur at application startup.)
|
|
------------------------------------------------------------------------------*/
|
|
app.wikis.scripts.set
|
|
( 'all_wikis' // user-defined key
|
|
, 'wikipedia~wiktionary~wikisource~wikibooks~wikiversity~wikiquote~wikinews~wikivoyage~wikimedia~commons~meta~species~wikidata~wikimediafoundation~mediawiki~incubator~home~other'
|
|
,
|
|
/* actual script which is executed when a wiki initializes. Note the following parameter placeholders
|
|
~{wiki_key} name of the wiki EX: 'en.wikipedia.org'
|
|
~{wiki_type_name} type name of wiki EX: 'wikipedia'
|
|
~{wiki_lang} lang key of the wiki EX: 'en'
|
|
*/
|
|
<:['
|
|
app.wikis.get('~{wiki_key}') {
|
|
files.cfg_download {
|
|
// enabled = 'n'; // y=file download enabled; n=file download disabled
|
|
redownload = 'none'; // none=never redownload file; missing=redownload file if file was missing before; all=redownload all files
|
|
}
|
|
user.name = 'Anonymous'; // set name for wiki user (appears in upper left hand corner of screen)
|
|
}
|
|
|
|
app.wikis.get('~{wiki_key}').html.portal {
|
|
div_personal =
|
|
<:["
|
|
<div id="p-personal" class="">
|
|
<h3>~{<>msgs.get('personaltools');<>}</h3>
|
|
~{portal_indicators_pagesource}
|
|
</div>
|
|
"]:>
|
|
;
|
|
div_ns =
|
|
<:["
|
|
<div id="left-navigation">
|
|
<!--NOTE: fix vertical tabs; ISSUE#:754 DATE:2020-07-02-->
|
|
<div id="p-namespaces" class="vector-menu vector-menu-tabs vectorTabs">
|
|
<h3>~{<>msgs.get('namespaces');<>}</h3>
|
|
<ul>
|
|
<li id="ca-nstab-main" class="~{portal_ns_subj_cls}"><span><a href="~{portal_ns_subj_href}" id="ca-nstab-main-href" class="xowa-hover-off"~{<>msgs.get_html_accesskey_and_title('ca-nstab-main');<>}>~{<>msgs.get('nstab-main');<>}</a></span></li>
|
|
<li id="ca-talk" class="~{portal_ns_talk_cls}"><span><a href="~{portal_ns_talk_href}" class="xowa-hover-off"~{<>msgs.get_html_accesskey_and_title('ca-talk');<>}>~{<>msgs.get('talk');<>}</a></span></li>
|
|
</ul>
|
|
</div>~{portal_div_vnts}
|
|
</div>
|
|
"]:>
|
|
;
|
|
div_view =
|
|
<:["
|
|
<div id="right-navigation">
|
|
<!--NOTE: fix vertical tabs; ISSUE#:754 DATE:2020-07-02-->
|
|
<div id="p-views" class="vector-menu vector-menu-tabs vectorTabs">
|
|
<h3>~{<>msgs.get('views');<>}</h3>
|
|
<ul>
|
|
<li id="ca-view" class="~{portal_view_read_cls}"><span><a href="~{portal_view_read_href}" class="xowa-hover-off">~{<>msgs.get('vector-view-view');<>}</a></span></li>
|
|
<li id="ca-edit" class="~{portal_view_edit_cls}"><span><a href="~{portal_view_edit_href}" class="xowa-hover-off"~{<>msgs.get_html_accesskey_and_title('ca-edit');<>}>~{<>msgs.get('vector-view-edit');<>}</a></span></li>
|
|
<li id="ca-history" class="~{portal_view_html_cls}"><span><a href="~{portal_view_html_href}" class="xowa-hover-off"~{<>msgs.get_html_accesskey_and_title('xowa-portal-view_html');<>}>~{<>msgs.get('xowa-portal-view_html');<>}</a></span></li>
|
|
</ul>
|
|
</div>
|
|
<div id="p-search" role="search">
|
|
<form id="searchform" action="/wiki/~{<>app.gui.win_opts.search_url;<>}">
|
|
<div id="simpleSearch">
|
|
<input type="search" name="search" placeholder="~{<>msgs.get('searchbutton');<>} ~{sitename}" id="searchInput"~{<>msgs.get_html_accesskey_and_title('search');<>} value="~{search_text}" autocomplete="off">
|
|
<input type="hidden" name="fulltext" value="y">
|
|
<input type="submit"~{<>msgs.get_html_accesskey_and_title('search');<>} id="mw-searchButton" class="searchButton mw-fallbackSearchButton" />
|
|
<input type="submit" name="go" value="~{<>msgs.get('go');<>}" title="~{<>msgs.get('tooltip-search-go');<>}" id="searchButton" class="searchButton" />
|
|
</div>
|
|
</form>
|
|
</li>
|
|
</div>
|
|
"]:>
|
|
;
|
|
div_logo =
|
|
<:["
|
|
<div id='p-logo'>
|
|
<a style="background-image: url(~{portal_logo_url});" href="~{portal_nav_main_href}" class='xowa-hover-off'~{<>msgs.get_html_accesskey_and_title('p-logo');<>}></a>
|
|
</div>
|
|
<div class="portal"><h3></h3></div><!-- empty heading else wikipedia css will hide next <h3> after <div id='p-logo'>; DATE:2016-04-12-->
|
|
"]:>
|
|
;
|
|
div_home =
|
|
<:["
|
|
<div class="portal" id='xowa-portal-home'>
|
|
<h3>XOWA</h3>
|
|
<div class="body">
|
|
<ul>
|
|
<li><a href="/site/home/wiki/Main_Page" class='xowa-hover-off'>~{<>app.user.msgs.get('mainpage-description');<>}</a></li>
|
|
<li><a href="/site/home/wiki/About" class='xowa-hover-off'>~{<>app.user.msgs.get('xowa-portal-about');<>}</a></li>
|
|
<li><a href="/site/home/wiki/Contents" class='xowa-hover-off'>~{<>app.user.msgs.get('help');<>}</a></li>
|
|
<li><a href="/site/home/wiki/Special:XowaPageHistory" class='xowa-hover-off'~{<>app.user.msgs.get_html_accesskey_and_title('xowa-portal-page_history');<>}>~{<>app.user.msgs.get('xowa-portal-page_history');<>}</a></li>
|
|
<li>~{<>app.user.msgs.get('xowa-portal-bookmarks');<>}</li>
|
|
<li style='margin-left:5px;'><a href="/site/home/wiki/Special:XowaBookmarks" class='xowa-hover-off'~{<>app.user.msgs.get_html_accesskey_and_title('xowa-portal-bookmarks-show');<>}>~{<>app.user.msgs.get('xowa-portal-bookmarks-show');<>}</a></li>
|
|
<li style='margin-left:5px;'><a href="javascript:xowa.cmds.send('gfs', 'app.api.usr.bookmarks.add;');" class='xowa-hover-off'~{<>app.user.msgs.get_html_accesskey_and_title('xowa-portal-bookmarks-add');<>}>~{<>app.user.msgs.get('xowa-portal-bookmarks-add');<>}</a></li>
|
|
<li><a href="/site/home/wiki/Options" class='xowa-hover-off'~{<>app.user.msgs.get_html_accesskey_and_title('xowa-portal-options');<>}>~{<>app.user.msgs.get('xowa-portal-options');<>}</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
"]:>
|
|
;
|
|
div_sync =
|
|
<:["
|
|
<div id="xowa-portal-sync" class="portal">
|
|
<h3>~{<>app.user.msgs.get('xowa-portal-sync');<>}</h3>
|
|
<div class="body">
|
|
<ul>
|
|
<li><a href="/wiki/Special:XowaSyncHtml?page=~{page_url}" class='xowa-hover-off'~{<>app.user.msgs.get_html_accesskey_and_title('xowa-portal-sync_html');<>}>~{<>app.user.msgs.get('xowa-portal-sync_html');<>}</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<!--
|
|
-->
|
|
"]:>
|
|
;
|
|
div_wikis =
|
|
<:["
|
|
<div id="xowa-portal-wikis" class="portal">
|
|
<h3>~{toggle_btn}</h3>
|
|
<div class="body">
|
|
<ul~{toggle_hdr}>~{<>app.gui.html.portal.wikis.itms_as_html;<>}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
"]:>
|
|
;
|
|
}
|
|
|
|
app.wikis.get('~{wiki_key}').html.article {
|
|
page_read =
|
|
<:["
|
|
<!DOCTYPE html>
|
|
<html dir="~{page_lang_ltr}" class="client-js" lang="~{page_lang}">
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
|
<title>~{page_name} - XOWA</title>
|
|
<link rel="shortcut icon" href="~{app_root_dir}bin/any/xowa/file/app.window/app_icon.png" />
|
|
<link rel="stylesheet" href="~{html_css_common_path}" type="text/css">
|
|
<link rel="stylesheet" href="~{html_css_wiki_path}" type="text/css">
|
|
~{html_css_night_tag}<!--XOWA.SCRIPT.HEAD.TOP-->~{xowa_head}<!--XOWA.SCRIPT.HEAD.BOT-->
|
|
<link rel="stylesheet" href="~{app_root_dir}bin/any/xowa/html/res/src/xowa/find/xowa_find_html.css" type="text/css">
|
|
<script src="~{app_root_dir}bin/any/xowa/html/res/src/xowa/find/xowa_find_html.js" type='text/javascript'></script>
|
|
<style type="text/css">
|
|
div#simpleSearch #searchButton,
|
|
div#simpleSearch #mw-searchButton {
|
|
~{<>lang.x_axis_end;<>}: 0;
|
|
direction: ~{<>lang.dir_str;<>};
|
|
z-index:initial; /* reset z-index, else will show in front of popup; DATE:2015-07-31 */
|
|
}
|
|
.new {!important; color:green;}
|
|
</style>
|
|
</head>
|
|
<body class="mediawiki ~{page_lang_ltr} sitedir-~{page_lang_ltr} ~{page_body_cls} skin-vector action-submit vector-animateLayout"~{html_content_editable} spellcheck="false">
|
|
<div id="mw-page-base" class="noprint"></div>
|
|
<div id="mw-head-base" class="noprint"></div>
|
|
<div id="content" class="mw-body">~{page_indicators}~{page_pgbnr}
|
|
<div id='xowa_err_div' class='xowa_err' style='display:none; color:red; white-space:pre; display:block; unicode-bidi:embed;'></div>~{page_heading}
|
|
<div id="bodyContent" class="mw-body-content">
|
|
<div id="siteSub">From XOWA: the free, open-source, offline wiki application</div>
|
|
<div id="contentSub" class="visible">~{page_content_sub}</div>~{page_jumpto}
|
|
<div id="mw-content-text" lang="~{page_lang}" dir="~{page_lang_ltr}" class="mw-content-~{page_lang_ltr} mw-parser-output">~{page_data}
|
|
<div class="visualClear">
|
|
~{page_langs}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
~{portal_div_footer}
|
|
|
|
<div id="mw-head" class="noprint">
|
|
~{portal_div_personal}
|
|
~{portal_div_ns}
|
|
~{portal_div_view}
|
|
</div>
|
|
|
|
<div id='mw-panel' class='noprint'>
|
|
~{portal_div_logo}
|
|
~{portal_div_home}
|
|
~{portal_sidebar}
|
|
~{portal_div_xtn}
|
|
~{portal_div_admin}
|
|
~{portal_div_wikis}
|
|
</div>
|
|
<div id='xo-popup-div-id' class='mw-body xo-popup-div' style='border:0px !important'></div>
|
|
<!-- xo-popup-div-id
|
|
* must be placed as peer to <div id="content">, not as sub-child, else will have overlap problems with search bar
|
|
* must use mw-body class to have same text-styling
|
|
* border:0px to suppress blue border b/c of mw-body
|
|
-->
|
|
</body>
|
|
<!--XOWA.SCRIPT.TAIL.TOP-->
|
|
</html>
|
|
<!-- page_id=~{page_id} -->
|
|
"]:>
|
|
;
|
|
page_edit =
|
|
<:["
|
|
<!DOCTYPE html>
|
|
<html dir="~{page_lang_ltr}" class="client-js" lang="~{page_lang}">
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
|
<title>~{page_name} - XOWA</title>
|
|
<link rel="shortcut icon" href="~{app_root_dir}bin/any/xowa/file/app.window/app_icon.png" />
|
|
<link rel="stylesheet" href="~{html_css_common_path}" type="text/css">
|
|
<link rel="stylesheet" href="~{html_css_wiki_path}" type="text/css">
|
|
~{html_css_night_tag}<!--XOWA.SCRIPT.HEAD.TOP-->~{xowa_head}<!--XOWA.SCRIPT.HEAD.BOT-->
|
|
<script src="~{app_root_dir}bin/any/xowa/html/res/src/xowa/edit-toolbar/edit-toolbar.js" type='text/javascript'></script>
|
|
<style type="text/css">
|
|
div#simpleSearch #searchButton,
|
|
div#simpleSearch #mw-searchButton {
|
|
~{<>lang.x_axis_end;<>}: 0;
|
|
direction: ~{<>lang.dir_str;<>};
|
|
}
|
|
</style>
|
|
<script type='text/javascript'>
|
|
~{js_edit_toolbar}
|
|
</script>
|
|
<script type='text/javascript'>
|
|
window.onload = function() {
|
|
document.body.focus();
|
|
var focus_elem_name = 'xowa_edit_data_box';
|
|
var preview_elem = document.getElementById('xowa_page_edit_preview_id');
|
|
if (preview_elem.childNodes.length > 0) {
|
|
focus_elem_name = 'firstHeading';
|
|
}
|
|
var firstElem = document.getElementById(focus_elem_name);
|
|
window.setTimeout(function(){firstElem.focus();}, 250);
|
|
}
|
|
</script>
|
|
</head>
|
|
<body class="mediawiki ~{page_lang_ltr} sitedir-~{page_lang_ltr} ~{page_body_cls} skin-vector action-submit vector-animateLayout"~{html_content_editable} spellcheck="false">
|
|
<div id="mw-page-base" class="noprint"></div>
|
|
<div id="mw-head-base" class="noprint"></div>
|
|
<div id="content" class="mw-body">~{page_indicators}~{page_pgbnr}
|
|
<div id='xowa_err_div' class='xowa_err'></div>~{page_heading}
|
|
<div id="bodyContent" class="mw-body-content">
|
|
<div id="siteSub">From XOWA: the free, open-source, offline wiki application</div>
|
|
<div id="contentSub" class="visible">~{page_content_sub}</div>
|
|
<div id="mw-content-text" lang="~{page_lang}" dir="~{page_lang_ltr}" class="mw-content-~{page_lang_ltr} mw-parser-output">
|
|
<div id="xowa_page_edit_preview_id">~{edit_div_preview}</div>
|
|
<form id="editform" name="editform">
|
|
<textarea id='xowa_edit_data_box' cols="80" rows="25">~{page_data}</textarea> <!-- NOTE: do not place on different line (EX: \n~{page_text}\n); textarea will interpret new line literally and page saves will include new whitespace -->
|
|
<div id="xowa_page_edit_save_id">
|
|
<a href="xowa-cmd:app.gui.main_win.page_edit_save;" class="xowa_anchor_button" style="width:100px;max-width:1024px;">~{<>msgs.get('savearticle');<>}</a>
|
|
<a href="xowa-cmd:app.gui.main_win.page_edit_preview;" class="xowa_anchor_button" style="width:100px;max-width:1024px;">~{<>msgs.get('showpreview');<>}</a>
|
|
~{edit_div_rename}
|
|
<a href="/wiki/Special:XowaPageDelete?delete=~{page_ttl_full}" onclick="return confirm('Please confirm you wish to delete this page.')" class="xowa_anchor_button" style="width:100px;max-width:1024px;">Delete page</a>
|
|
<a href="/wiki/~{page_ttl_full}" class="xowa_anchor_button" style="width:100px;max-width:1024px;">~{<>msgs.get('cancel');<>}</a>
|
|
</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
~{portal_div_footer}
|
|
|
|
<div id="mw-head" class="noprint">
|
|
~{portal_div_personal}
|
|
~{portal_div_ns}
|
|
~{portal_div_view}
|
|
</div>
|
|
|
|
<div id='mw-panel' class='noprint'>
|
|
~{portal_div_logo}
|
|
~{portal_div_home}
|
|
~{portal_sidebar}
|
|
~{portal_div_xtn}
|
|
~{portal_div_admin}
|
|
~{portal_div_wikis}
|
|
</div>
|
|
<div id='xo-popup-div-id' class='mw-body xo-popup-div' style='border:0px !important'></div>
|
|
<!-- xo-popup-div-id
|
|
* must be placed as peer to <div id="content">, not as sub-child, else will have overlap problems with search bar
|
|
* must use mw-body class to have same text-styling
|
|
* border:0px to suppress blue border b/c of mw-body
|
|
-->
|
|
</body>
|
|
<!--XOWA.SCRIPT.TAIL.TOP-->
|
|
</html>
|
|
"]:>
|
|
;
|
|
page_html =
|
|
<:["
|
|
<!DOCTYPE html>
|
|
<html dir="~{page_lang_ltr}" lang="~{page_lang}">
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
|
<title>~{page_name} - XOWA</title>
|
|
<link rel="shortcut icon" href="~{app_root_dir}bin/any/xowa/file/app.window/app_icon.png" />
|
|
<link rel="stylesheet" href="~{html_css_common_path}" type="text/css">
|
|
<link rel="stylesheet" href="~{html_css_wiki_path}" type="text/css">
|
|
~{html_css_night_tag}<!--XOWA.SCRIPT.HEAD.TOP-->~{xowa_head}<!--XOWA.SCRIPT.HEAD.BOT-->
|
|
<style type="text/css">
|
|
div#simpleSearch #searchButton,
|
|
div#simpleSearch #mw-searchButton {
|
|
~{<>lang.x_axis_end;<>}: 0;
|
|
direction: ~{<>lang.dir_str;<>};
|
|
}
|
|
</style>
|
|
<script>
|
|
window.onload = function() {
|
|
document.body.focus();
|
|
var focus_elem_name = 'xowa_edit_data_box';
|
|
var firstElem = document.getElementById(focus_elem_name);
|
|
window.setTimeout(function(){firstElem.focus();}, 250);
|
|
}
|
|
</script>
|
|
</head>
|
|
<body class="mediawiki ~{page_lang_ltr} sitedir-~{page_lang_ltr} ~{page_body_cls} skin-vector action-submit vector-animateLayout"~{html_content_editable} spellcheck="false">
|
|
<div id="mw-page-base" class="noprint"></div>
|
|
<div id="mw-head-base" class="noprint"></div>
|
|
<div id="content" class="mw-body">~{page_indicators}~{page_heading}
|
|
<div id="bodyContent" class="mw-body-content">
|
|
<div id="siteSub">From XOWA: the free, open-source, offline wiki application</div>
|
|
<div id="contentSub"> </div>
|
|
<div id="mw-content-text" lang="~{page_lang}" dir="~{page_lang_ltr}" class="mw-content-~{page_lang_ltr} mw-parser-output">
|
|
<textarea id='xowa_edit_data_box' cols="80" rows="25">~{page_data}</textarea> <!-- NOTE: do not place on different line (EX: \n~{page_text}\n); textarea will interpret new line literally and page saves will include new whitespace -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
~{portal_div_footer}
|
|
|
|
<div id="mw-head" class="noprint">
|
|
~{portal_div_personal}
|
|
~{portal_div_ns}
|
|
~{portal_div_view}
|
|
</div>
|
|
|
|
<div id='mw-panel' class='noprint'>
|
|
~{portal_div_logo}
|
|
~{portal_div_home}
|
|
~{portal_sidebar}
|
|
~{portal_div_xtn}
|
|
~{portal_div_admin}
|
|
~{portal_div_wikis}
|
|
</div>
|
|
</body>
|
|
<!--XOWA.SCRIPT.TAIL.TOP-->
|
|
</html>
|
|
"]:>
|
|
;
|
|
}
|
|
']:>
|
|
);
|
|
|
|
/*******************************************************************************
|
|
dynamic wiki script: home wiki
|
|
********************************************************************************
|
|
------------------------------------------------------------------------------*/
|
|
app.wikis.scripts.set
|
|
( 'home_wiki' // user-defined key
|
|
, 'home'
|
|
,
|
|
<:['
|
|
app.wikis.get('~{wiki_key}').html.portal
|
|
.div_personal_(
|
|
<:["
|
|
<div id="p-personal" class="">
|
|
<h3>~{<>app.user.msgs.get('personaltools');<>}</h3>
|
|
</div>
|
|
"]:>
|
|
)
|
|
;
|
|
|
|
app.wikis.get('~{wiki_key}').data_mgr {
|
|
create_enabled = 'y'; // NOTE: do NOT enable create on any other wiki; it will break the wiki
|
|
update_modified_on_enabled = 'y';
|
|
}
|
|
|
|
app.wikis.get('~{wiki_key}') {
|
|
html.modules.get('top_icon').enabled = 'y';
|
|
}
|
|
']:>
|
|
);
|
|
|
|
|
|
/*******************************************************************************
|
|
dynamic wiki script: ordinary wikis
|
|
********************************************************************************
|
|
------------------------------------------------------------------------------*/
|
|
app.wikis.scripts.set
|
|
( 'ordinary_wikis'
|
|
, 'wikipedia~wiktionary~wikisource~wikibooks~wikiversity~wikiquote~wikinews~wikivoyage~commons~wikidata~wikimedia~wikimediafoundation~incubator~mediawiki~home~other' // list of wiki type names; note that every wiki type is listed except for 'meta', 'species', 'home'; 'meta' and 'species' are set below
|
|
,
|
|
"
|
|
app.files.repos {
|
|
set('src_http_~{wiki_key}', 'https://upload.wikimedia.org/~{wiki_type_name}/~{wiki_lang}/' , '~{wiki_key}') .tid_('self').ext_rules_('img_only');
|
|
set('trg_file_~{wiki_key}', '~{wiki_key}' , '~{wiki_key}') .tid_('self').fsys_('wnt').primary_('y');
|
|
set('src_http_math' , 'https://wikimedia.org/api/rest_v1/media/math/render/svg/' , 'wikimedia.org/math').tid_('math');
|
|
set('trg_file_math' , 'math' , 'wikimedia.org/math').tid_('math').fsys_('wnt');
|
|
//set('src_http_~{wiki_key}', 'W:\~{wiki_type_name}\~{wiki_lang}\' , '~{wiki_key}').fsys_('wnt').tarball_('y').ext_rules_('img_only');
|
|
}
|
|
|
|
app.wikis.get('~{wiki_key}').files.repos {
|
|
add('src_http_commons' , 'trg_file_commons');
|
|
add('src_http_~{wiki_key}' , 'trg_file_~{wiki_key}');
|
|
add('src_http_math' , 'trg_file_math').repo_id_(2);
|
|
}
|
|
|
|
app.wikis.get('~{wiki_key}').commons_wiki = 'commons.wikimedia.org'; // name of commons wiki; for files, xowa checks current wiki and then commons wiki
|
|
");
|
|
|
|
/*******************************************************************************
|
|
dynamic wiki script: wikinews
|
|
********************************************************************************
|
|
------------------------------------------------------------------------------*/
|
|
app.wikis.scripts.set
|
|
( 'wikinews_script'
|
|
, 'wikinews'
|
|
,
|
|
"
|
|
app.files.repos {
|
|
set('src_http_~{wiki_key}', 'https://upload.wikimedia.org/~{wiki_type_name}/~{wiki_lang}/' , '~{wiki_key}').ext_rules_('img_only');
|
|
set('trg_file_~{wiki_key}', '~{wiki_key}' , '~{wiki_key}').fsys_('wnt').primary_('y')
|
|
}
|
|
app.wikis.get('~{wiki_key}').files.repos.clear {
|
|
add('src_http_~{wiki_key}' , 'trg_file_~{wiki_key}').repo_id_(1);
|
|
add('src_http_commons' , 'trg_file_commons').repo_id_(0);
|
|
}
|
|
"
|
|
)
|
|
;
|
|
|
|
/*******************************************************************************
|
|
dynamic wiki script: wikivoyage
|
|
********************************************************************************
|
|
------------------------------------------------------------------------------*/
|
|
app.wikis.scripts.set
|
|
( 'wikivoyage_script'
|
|
, 'wikivoyage~home'
|
|
,
|
|
"
|
|
app.wikis.get('~{wiki_key}').xtns.get('Listings').enabled = 'y';
|
|
app.wikis.get('~{wiki_key}').xtns.get('Insider').enabled = 'y';
|
|
app.wikis.get('~{wiki_key}').xtns.get('RelatedSites') {
|
|
enabled = 'y';
|
|
sites {
|
|
set_many('commons|wikipedia|dmoz');
|
|
}
|
|
}
|
|
"
|
|
);
|
|
|
|
/*******************************************************************************
|
|
dynamic wiki script: meta
|
|
********************************************************************************
|
|
------------------------------------------------------------------------------*/
|
|
app.wikis.scripts.set
|
|
( 'meta_wiki'
|
|
, 'meta'
|
|
,
|
|
"
|
|
app.files.repos {
|
|
set('trg_file_meta' , 'meta.wikimedia.org' , 'meta.wikimedia.org' ).fsys_('wnt');
|
|
}
|
|
|
|
app.wikis.get('meta.wikimedia.org').files.repos {
|
|
add('src_http_commons', 'trg_file_commons');
|
|
}
|
|
"
|
|
)
|
|
;
|
|
|
|
/*******************************************************************************
|
|
dynamic wiki script: species
|
|
********************************************************************************
|
|
------------------------------------------------------------------------------*/
|
|
app.wikis.scripts.set
|
|
( 'species_wiki'
|
|
, 'species'
|
|
,
|
|
"
|
|
app.files.repos {
|
|
set('trg_file_species', 'species.wikimedia.org' , 'species.wikimedia.org' ).fsys_('wnt').primary_('y');
|
|
}
|
|
|
|
app.wikis.get('species.wikimedia.org').files.repos {
|
|
add('src_http_commons', 'trg_file_commons');
|
|
}
|
|
"
|
|
)
|
|
;
|
|
|
|
/*******************************************************************************
|
|
dynamic wiki script: wikimediafoundation
|
|
********************************************************************************
|
|
------------------------------------------------------------------------------*/
|
|
app.wikis.scripts.set
|
|
( 'wikimediafoundation_wiki'
|
|
, 'wikimediafoundation'
|
|
,
|
|
// set wmf location to "/wikipedia/foundation/" not "/wikimediafoundation/en/"
|
|
"
|
|
app.files.repos {
|
|
set('src_http_~{wiki_key}', 'https://upload.wikimedia.org/wikipedia/foundation/' , '~{wiki_key}').ext_rules_('img_only');
|
|
set('trg_file_~{wiki_key}', '~{wiki_key}' , '~{wiki_key}').fsys_('wnt').primary_('y')
|
|
}
|
|
app.wikis.get('~{wiki_key}').files.repos.clear {
|
|
add('src_http_~{wiki_key}' , 'trg_file_~{wiki_key}').repo_id_(1);
|
|
add('src_http_commons' , 'trg_file_commons').repo_id_(0);
|
|
}
|
|
"
|
|
)
|
|
;
|
|
|
|
/*******************************************************************************
|
|
url_aliases: shortcuts for url bar; see [[Help:Address_bar/Shortcuts]]
|
|
*******************************************************************************/
|
|
// OBSOLETED: DATE:2017-03-27
|
|
// app.gui.win_opts.search_box_fmt = 'Special:AllPages?from=~{search}&namespace=0&hideredirects=0';
|
|
|
|
|
|
/*******************************************************************************
|
|
xwikis: aliases by lang
|
|
********************************************************************************
|
|
this section has two primary functions
|
|
1) assigns a display name to the language codes; for example 'en' is English
|
|
note that the name is in English. For example, 'fr' is French, not Français
|
|
2) groups the languages by tiers
|
|
note that the tiers roughly follow the groups on English Wikipedia's Main Page
|
|
------------------------------------------------------------------------------*/
|
|
app.xwiki_langs_load(
|
|
"
|
|
0|Tier 0
|
|
1|de|German
|
|
1|en|English
|
|
1|es|Spanish
|
|
1|fr|French
|
|
1|it|Italian
|
|
1|ja|Japanese
|
|
1|nl|Dutch
|
|
1|pl|Polish
|
|
1|pt|Portuguese
|
|
1|ru|Russian
|
|
0|Tier 1
|
|
1|ar|Arabic
|
|
1|ca|Catalan
|
|
1|cs|Czech
|
|
1|da|Danish
|
|
1|eo|Esperanto
|
|
1|fa|Persian
|
|
1|fi|Finnish
|
|
1|hu|Hungarian
|
|
1|id|Indonesian
|
|
1|kk|Kazakh
|
|
1|ko|Korean
|
|
1|lt|Lithuanian
|
|
1|no|Norwegian
|
|
1|ro|Romanian
|
|
1|sk|Slovak
|
|
1|sr|Serbian
|
|
1|sv|Swedish
|
|
1|tr|Turkish
|
|
1|uk|Ukrainian
|
|
1|vi|Vietnamese
|
|
1|zh|Chinese (Zhōng Wén)
|
|
0|Tier 2
|
|
1|bg|Bulgarian
|
|
1|el|Greek
|
|
1|et|Estonian
|
|
1|eu|Basque
|
|
1|gl|Galician
|
|
1|he|Hebrew
|
|
1|hr|Croatian
|
|
1|ms|Malay
|
|
1|nn|Norwegian (Nynorsk)
|
|
1|sh|Serbocroatian
|
|
1|simple|Simple English
|
|
1|sl|Slovenian
|
|
1|th|Thai
|
|
1|vo|Volapük
|
|
0|Tier 3
|
|
1|hi|Hindi
|
|
1|ia|Interlingua (IALA)
|
|
1|la|Latin
|
|
0|Others
|
|
1|aa|Afar
|
|
1|ab|Abkhaz
|
|
1|ace|Aceh
|
|
1|af|Afrikaans
|
|
1|ak|Akan
|
|
1|aln|Gheg Albanian
|
|
1|als|Alemannic
|
|
1|am|Amharic
|
|
1|an|Aragonese
|
|
1|ang|Old English
|
|
1|arc|Aramaic
|
|
1|arn|Mapudungu
|
|
1|ary|Moroccan Spoken
|
|
1|arz|Egyptian Spoken
|
|
1|as|Assamese
|
|
1|ast|Asturian
|
|
1|av|Avar
|
|
1|avk|Kotava
|
|
1|ay|Aymara
|
|
1|az|Azerbaijani
|
|
1|ba|Bashkir
|
|
1|bar|Bavarian
|
|
1|bat-smg|Samogitian
|
|
1|bcc|Southern Balochi
|
|
1|bcl|Bikol
|
|
1|be|Belarusian (norm...)
|
|
1|be-tarask|Belarusian (Tara...)
|
|
1|be-x-old|Belarusian (Tara orth...)
|
|
1|bh|Bhojpuri
|
|
1|bi|Bislama
|
|
1|bjn|Banjarese
|
|
1|bm|Bambara
|
|
1|bn|Bengali
|
|
1|bo|Tibetan
|
|
1|bpy|Bishnupriya Manipuri
|
|
1|bqi|Bakthiari
|
|
1|br|Breton
|
|
1|bs|Bosnian
|
|
1|bug|Bugis
|
|
1|bxr|Buryat
|
|
1|cbk-zam|Zamboanga Chavacano
|
|
1|cdo|Min Dong
|
|
1|ce|Chechen
|
|
1|ceb|Cebuano
|
|
1|ch|Chamorro
|
|
1|cho|Choctaw
|
|
1|chr|Cherokee
|
|
1|chy|Cheyenne
|
|
1|ckb|Sorani
|
|
1|co|Corsican
|
|
1|cps|Capiznon
|
|
1|cr|Cree
|
|
1|crh|Crimean Tatar
|
|
1|crh-cyrl|Crimean Tatar (Cyrillic)
|
|
1|crh-latn|Crimean Tatar (Latin)
|
|
1|csb|Cassubian
|
|
1|cu|Old Church Slavonic
|
|
1|cv|Chuvash
|
|
1|cy|Welsh
|
|
1|de-at|Austrian German
|
|
1|de-ch|Swiss Standard German
|
|
1|de-formal|German - formal
|
|
1|diq|Zazaki
|
|
1|dsb|Lower Sorbian
|
|
1|dv|Dhivehi
|
|
1|dz|Bhutani
|
|
1|ee|Éwé
|
|
1|eml|Emiliano-Romagnolo
|
|
1|en-gb|British English
|
|
1|ext|Extremaduran
|
|
1|ff|Fulfulde
|
|
1|fiu-vro|Võro
|
|
1|fj|Fijian
|
|
1|fo|Faroese
|
|
1|frc|Cajun French
|
|
1|frp|Arpitan
|
|
1|frr|North Frisian
|
|
1|fur|Friulian
|
|
1|fy|Frisian
|
|
1|ga|Irish
|
|
1|gag|Gagauz
|
|
1|gan|Gan
|
|
1|gan-hans|Gan (Simplified Han)
|
|
1|gan-hant|Gan (Traditional Han)
|
|
1|gd|Scots Gaelic
|
|
1|glk|Gilaki
|
|
1|gn|Guaraní
|
|
1|got|Gothic
|
|
1|grc|Ancient Greek
|
|
1|gsw|Alemannic
|
|
1|gu|Gujarati
|
|
1|gv|Manx
|
|
1|ha|Hausa
|
|
1|hak|Hakka
|
|
1|haw|Hawaiian
|
|
1|hif|Fijian Hindi
|
|
1|hif-latn|Fiji Hindi (latin)
|
|
1|hil|Hiligaynon
|
|
1|ho|Hiri Motu
|
|
1|hsb|Upper Sorbian
|
|
1|ht|Haitian Creole
|
|
1|hy|Armenian
|
|
1|hz|Herero
|
|
1|ie|Interlingue (Occidental)
|
|
1|ig|Igbo
|
|
1|ii|Sichuan Yi
|
|
1|ik|Inupiak
|
|
1|ike-cans|Inuktitut
|
|
1|ike-latn|Inuktitut (Latin script)
|
|
1|ilo|Ilokano
|
|
1|inh|Ingush
|
|
1|io|Ido
|
|
1|is|Icelandic
|
|
1|iu|Inuktitut
|
|
1|jbo|Lojban
|
|
1|jut|Jutish
|
|
1|jv|Javanese
|
|
1|ka|Georgian
|
|
1|kaa|Karakalpak
|
|
1|kab|Kabyle
|
|
1|kbd|Kabardian
|
|
1|kbd-cyrl|Kabardian (Cyrillic)
|
|
1|kg|Kongo
|
|
1|ki|Gikuyu
|
|
1|kiu|Kirmanjki
|
|
1|kj|Kwanyama
|
|
1|kk-arab|Kazakh Arabic
|
|
1|kk-cn|Kazakh (China)
|
|
1|kk-cyrl|Kazakh Cyrillic
|
|
1|kk-kz|Kazakh (Kazakhstan)
|
|
1|kk-latn|Kazakh Latin
|
|
1|kk-tr|Kazakh (Turkey)
|
|
1|kl|Inuktitut, Greenlandic
|
|
1|km|Khmer, Central
|
|
1|kn|Kannada
|
|
1|ko-kp|Korean (DPRK)
|
|
1|koi|Komi-Permyak
|
|
1|kr|Kanuri, Central
|
|
1|krc|Karachay-Balkar
|
|
1|kri|Krio
|
|
1|krj|Kinaray-a
|
|
1|ks|Kashmiri
|
|
1|ksh|Ripuarian
|
|
1|ku|Kurdish
|
|
1|ku-arab|Northern Kurdish
|
|
1|ku-latn|Northern Kurdish (Latin)
|
|
1|kv|Komi-Zyrian (Cyrillic)
|
|
1|kw|Cornish
|
|
1|ky|Kirghiz
|
|
1|lad|Ladino
|
|
1|lb|Luxemburguish
|
|
1|lbe|Lak
|
|
1|lez|Lezgi
|
|
1|lfn|Lingua Franca Nova
|
|
1|lg|Ganda
|
|
1|li|Limburgian
|
|
1|lij|Ligurian
|
|
1|lmo|Lombard
|
|
1|ln|Lingala
|
|
1|lo|Laotian
|
|
1|loz|Lozi
|
|
1|ltg|Latgalian
|
|
1|lv|Latvian
|
|
1|lzh|Literary Chinese
|
|
1|lzz|Laz
|
|
1|mai|Maithili
|
|
1|map-bms|Banyumasan
|
|
1|mdf|Moksha
|
|
1|mg|Malagasy
|
|
1|mh|Marshallese
|
|
1|mhr|Eastern Mari
|
|
1|mi|Maori
|
|
1|min|Minangkabau
|
|
1|mk|Macedonian
|
|
1|ml|Malayalam
|
|
1|mn|Halh Mongolian (Cyrillic)
|
|
1|mo|Moldovan
|
|
1|mr|Marathi
|
|
1|mrj|Hill Mari
|
|
1|mt|Maltese
|
|
1|mus|Muskogee/Creek
|
|
1|mwl|Mirandese
|
|
1|my|Burmese
|
|
1|myv|Erzya
|
|
1|mzn|Mazanderani
|
|
1|na|Nauruan
|
|
1|nah|Nahuatl
|
|
1|nan|Min-nan
|
|
1|nap|Neapolitan
|
|
1|nb|Norwegian (Bokmal)
|
|
1|nds|Low German
|
|
1|nds-nl|Dutch Low Saxon
|
|
1|ne|Nepali
|
|
1|new|Newar / Nepal Bhasa
|
|
1|ng|Ndonga
|
|
1|niu|Niuean
|
|
1|nl-informal|Dutch (informal)
|
|
1|nov|Novial
|
|
1|nrm|Norman
|
|
1|nso|Northern Sotho
|
|
1|nv|Navajo
|
|
1|ny|Chichewa
|
|
1|oc|Occitan
|
|
1|om|Oromo
|
|
1|or|Oriya
|
|
1|os|Ossetic
|
|
1|pa|Punjabi
|
|
1|pag|Pangasinan
|
|
1|pam|Pampanga
|
|
1|pap|Papiamentu
|
|
1|pcd|Picard
|
|
1|pdc|Pennsylvania German
|
|
1|pdt|Plautdietsch
|
|
1|pfl|Palatinate German
|
|
1|pi|Pali
|
|
1|pih|Norfuk/Pitcairn
|
|
1|pms|Piedmontese
|
|
1|pnb|Western Punjabi
|
|
1|pnt|Pontic Greek
|
|
1|prg|Prussian
|
|
1|ps|Pashto
|
|
1|pt-br|Brazilian Portuguese
|
|
1|qu|Quechua
|
|
1|rgn|Romagnol
|
|
1|rif|Tarifit
|
|
1|rm|Raeto-Romance
|
|
1|rmy|Vlax Romany
|
|
1|rn|Kirundi
|
|
1|roa-rup|Aromanian
|
|
1|roa-tara|Tarantino
|
|
1|rue|Rusyn
|
|
1|ruq|Megleno-Romanian
|
|
1|ruq-cyrl|Megleno-Romanian (Cyrillic)
|
|
1|ruq-latn|Megleno-Romanian (Latin)
|
|
1|rw|Kinyarwanda
|
|
1|sa|Sanskrit
|
|
1|sah|Sakha
|
|
1|sc|Sardinian
|
|
1|scn|Sicilian
|
|
1|sco|Scots
|
|
1|sd|Sindhi
|
|
1|sdc|Sassarese
|
|
1|se|Northern Sami
|
|
1|sei|Seri
|
|
1|sg|Sango/Sangho
|
|
1|sgs|Samogitian
|
|
1|shi|Tachelhit
|
|
1|si|Sinhalese
|
|
1|sli|Lower Selisian
|
|
1|sm|Samoan
|
|
1|sma|Southern Sami
|
|
1|sn|Shona
|
|
1|so|Somali
|
|
1|sq|Albanian
|
|
1|sr-ec|Serbian Cyrillic
|
|
1|sr-el|Serbian Latin
|
|
1|srn|Sranan Tongo
|
|
1|ss|Swati
|
|
1|st|Southern Sotho
|
|
1|stq|Saterland Frisian
|
|
1|su|Sundanese
|
|
1|sw|Swahili
|
|
1|szl|Silesian
|
|
1|ta|Tamil
|
|
1|tcy|Tulu
|
|
1|te|Telugu
|
|
1|tet|Tetun
|
|
1|tg|Tajiki
|
|
1|tg-cyrl|Tajiki (Cyrllic)
|
|
1|tg-latn|Tajiki (Latin)
|
|
1|ti|Tigrinya
|
|
1|tk|Turkmen
|
|
1|tl|Tagalog
|
|
1|tn|Setswana
|
|
1|to|Tonga
|
|
1|tokipona|Toki Pona
|
|
1|tp|Toki Pona (non-standard)
|
|
1|tpi|Tok Pisin
|
|
1|ts|Tsonga
|
|
1|tt|Tatar
|
|
1|tt-cyrl|Tatar (Cyrillic script)
|
|
1|tt-latn|Tatar (Latin script)
|
|
1|tum|Tumbuka
|
|
1|tw|Twi
|
|
1|ty|Tahitian
|
|
1|tyv|Tyvan
|
|
1|udm|Udmurt
|
|
1|ug|Uyghur
|
|
1|ug-arab|Uyghur (Arabic script)
|
|
1|ug-latn|Uyghur (Latin script)
|
|
1|ur|Urdu
|
|
1|uz|Uzbek
|
|
1|ve|Venda
|
|
1|vec|Venetian
|
|
1|vep|Veps
|
|
1|vls|West Flemish
|
|
1|vmf|Upper Franconian
|
|
1|vot|Vod
|
|
1|vro|Võro
|
|
1|wa|Walloon
|
|
1|war|Waray-Waray
|
|
1|wo|Wolof
|
|
1|wuu|Wu Chinese
|
|
1|xal|Kalmyk-Oirat
|
|
1|xh|Xhosan
|
|
1|xmf|Mingrelian
|
|
1|yi|Yiddish
|
|
1|yo|Yoruba
|
|
1|yue|Cantonese
|
|
1|za|Zhuang
|
|
1|zea|Zeeuws/Zeaws
|
|
1|zh-classical|Classical Chinese
|
|
1|zh-cn|Chinese (PRC)
|
|
1|zh-hans|Mandarin Chinese (Simplified)
|
|
1|zh-hant|Mandarin Chinese (Traditional)
|
|
1|zh-hk|Chinese (Hong Kong)
|
|
1|zh-min-nan|Min-nan
|
|
1|zh-mo|Chinese (Macau)
|
|
1|zh-my|Chinese (Malaysia)
|
|
1|zh-sg|Chinese (Singapore)
|
|
1|zh-tw|Chinese (Taiwan)
|
|
1|zh-yue|Cantonese
|
|
1|zu|Zulu
|
|
"
|
|
);
|