summaryrefslogtreecommitdiff
path: root/languages/LanguageLa.php
diff options
context:
space:
mode:
Diffstat (limited to 'languages/LanguageLa.php')
-rw-r--r--languages/LanguageLa.php120
1 files changed, 120 insertions, 0 deletions
diff --git a/languages/LanguageLa.php b/languages/LanguageLa.php
new file mode 100644
index 00000000..0e783ad4
--- /dev/null
+++ b/languages/LanguageLa.php
@@ -0,0 +1,120 @@
+<?php
+/** Latin (lingua Latina)
+ *
+ * @package MediaWiki
+ * @subpackage Language
+ */
+
+if (!$wgCachedMessageArrays) {
+ require_once('MessagesLa.php');
+}
+
+class LanguageLa extends LanguageUtf8 {
+ private $mMessagesLa, $mNamespaceNamesLa = null;
+
+ private $mQuickbarSettingsLa = array(
+ 'Nullus', 'Constituere a sinistra', 'Constituere a dextra', 'Innens a sinistra'
+ );
+
+ private $mSkinNamesLa = array(
+ 'standard' => 'Norma',
+ 'nostalgia' => 'Nostalgia',
+ 'cologneblue' => 'Caerulus Colonia'
+ );
+
+ function __construct() {
+ parent::__construct();
+
+ global $wgAllMessagesLa;
+ $this->mMessagesLa =& $wgAllMessagesLa;
+
+ global $wgMetaNamespace;
+ $this->mNamespaceNamesLa = array(
+ NS_SPECIAL => 'Specialis',
+ NS_MAIN => '',
+ NS_TALK => 'Disputatio',
+ NS_USER => 'Usor',
+ NS_USER_TALK => 'Disputatio_Usoris',
+ NS_PROJECT => $wgMetaNamespace,
+ NS_PROJECT_TALK => 'Disputatio_' . $this->convertGrammar( $wgMetaNamespace, 'genitive' ),
+ NS_IMAGE => 'Imago',
+ NS_IMAGE_TALK => 'Disputatio_Imaginis',
+ NS_MEDIAWIKI => 'MediaWiki',
+ NS_MEDIAWIKI_TALK => 'Disputatio_MediaWiki',
+ NS_TEMPLATE => 'Formula',
+ NS_TEMPLATE_TALK => 'Disputatio_Formulae',
+ NS_HELP => 'Auxilium',
+ NS_HELP_TALK => 'Disputatio_Auxilii',
+ NS_CATEGORY => 'Categoria',
+ NS_CATEGORY_TALK => 'Disputatio_Categoriae',
+ );
+
+ }
+
+ function getNamespaces() {
+ return $this->mNamespaceNamesLa + parent::getNamespaces();
+ }
+
+ function getQuickbarSettings() {
+ return $this->mQuickbarSettingsLa;
+ }
+
+ function getSkinNames() {
+ return $this->mSkinNamesLa + parent::getSkinNames();
+ }
+
+ function getMessage( $key ) {
+ if( isset( $this->mMessagesLa[$key] ) ) {
+ return $this->mMessagesLa[$key];
+ } else {
+ return parent::getMessage( $key );
+ }
+ }
+
+ function getAllMessages() {
+ return $this->mMessagesLa;
+ }
+
+ function getNsIndex( $text ) {
+ global $wgMetaNamespace;
+
+ foreach ( $this->mNamespaceNamesLa as $i => $n ) {
+ if ( 0 == strcasecmp( $n, $text ) ) { return $i; }
+ }
+
+ # Backwards compatibility hacks
+ if( $wgMetaNamespace == 'Vicipaedia' || $wgMetaNamespace == 'Victionarium' ) {
+ if( 0 == strcasecmp( 'Disputatio_Wikipedia', $text ) ) return NS_PROJECT_TALK;
+ }
+ return false;
+ }
+
+ /**
+ * Convert from the nominative form of a noun to some other case
+ *
+ * Just used in a couple places for sitenames; special-case as necessary.
+ * Rules are far from complete.
+ *
+ * Cases: genitive
+ */
+ function convertGrammar( $word, $case ) {
+ global $wgGrammarForms;
+ if ( isset($wgGrammarForms['la'][$case][$word]) ) {
+ return $wgGrammarForms['la'][$case][$word];
+ }
+
+ switch ( $case ) {
+ case 'genitive':
+ // 1st and 2nd declension singular only.
+ $in = array( '/a$/', '/u[ms]$/', '/tio$/' );
+ $out = array( 'ae', 'i', 'tionis' );
+ return preg_replace( $in, $out, $word );
+ default:
+ return $word;
+ }
+ }
+
+}
+
+
+?>