blob: 76ab6532f554dde8b03ca33636b9b4d548106337 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
<?php
/**
* GentooToolbox
*
* @ingroup Extensions
* @author Alex Legler <a3li@gentoo.org>
* @version 1.0
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
*/
use SMW\DIProperty;
use SMW\PropertyRegistry;
class GTBXTranslationProperties {
public static function setupProperties() {
PropertyRegistry::getInstance()->registerProperty('___LANG', '_str', wfMessage('gtbx-prop-lang')->inContentLanguage()->text());
PropertyRegistry::getInstance()->registerPropertyAlias('___LANG', 'Language');
PropertyRegistry::getInstance()->registerProperty('___TRANS', '_boo', wfMessage('gtbx-prop-trans')->inContentLanguage()->text());
PropertyRegistry::getInstance()->registerPropertyAlias('___TRANS', 'Is Translation Page');
return true;
}
public static function updateDataBefore($store, $data) {
$subject = $data->getSubject();
$title = Title::makeTitle($subject->getNamespace(), $subject->getDBKey());
$wikipage = WikiPage::factory($title);
if (is_null($title) || is_null($wikipage)) {
return true;
}
// Property 1: Is translation page
$property = new DIProperty('___TRANS');
$is_translation_page = !(TranslatablePage::isTranslationPage($title) === false);
$data_item = new SMWDIBoolean($is_translation_page);
$data->addPropertyObjectValue($property, $data_item);
// Property 2: Language?
$property = new DIProperty('___LANG');
global $wgLanguageCode;
$language_code = $wgLanguageCode;
if ($is_translation_page) {
list( , $code ) = TranslateUtils::figureMessage( $title->getText() );
$language_code = $code;
}
$data_item = new SMWDIString($language_code);
$data->addPropertyObjectValue($property, $data_item);
}
}
|