Special:Communication & Concept/MediaWiki 다국어 확장 번들 설치 방법

Jump to: navigation, search
#168 [ Ssam ] hit: 122(#85ff85) 2



  1. 미디어위키에서 다국어를 설정하여 글로벌 사이트를 구성 할 수 있다.
  2. 번들은 다국어 지원을 원하는 모든 위키에서 필요로하는 몇 가지 MediaWiki 확장 모음 입니다.
  3. Wiki가 그러하듯이 특정 패턴으로 사용자들이 협업하여 문서를 제작 하듯이, 기준 언어로 글을 쓰고 그걸 협업하여 번역하면서 다국어를 지원하는 개념.

릴리스 노트 및 다운로드

  • 요구상에 맟는 것을 다운로드 한다.
  • 요구사항은 MediaWiki 1.31.X, 1.32 이상과 호환되며 PHP 7.0.0 이상이 필요합니다.
  • 압축을 풀어보면 필요한 프로그램들이 들어 있음 /extensions/ 안에 있는 프로그램을 계정 extensions/ 폴더에 모두 업로드 한다.

MediaWiki Extention 설치

  • LocalSettings.php 파일에 추가 한다.
wfLoadExtension( 'Babel' );
wfLoadExtension( 'cldr' ); 
wfLoadExtension( 'CleanChanges' );
$wgCCTrailerFilter = true;
$wgCCUserFilter = false;
$wgDefaultUserOptions['usenewrc'] = 1;

wfLoadExtension( 'LocalisationUpdate' );
$wgLocalisationUpdateDirectory = "$IP/cache";

require_once "$IP/extensions/Translate/Translate.php";
$wgGroupPermissions['user']['translate'] = true;
$wgGroupPermissions['user']['translate-messagereview'] = true;
$wgGroupPermissions['user']['translate-groupreview'] = true;
$wgGroupPermissions['user']['translate-import'] = true;
$wgGroupPermissions['sysop']['pagetranslation'] = true;
$wgGroupPermissions['sysop']['translate-manage'] = true;
$wgTranslateDocumentationLanguageCode = 'qqq';
$wgExtraLanguageNames['qqq'] = 'Message documentation'; # No linguistic content. Used for documenting messages

wfLoadExtension( 'UniversalLanguageSelector' );

  1. 언어 내용 없음. 메시지를 문서화하는 데 사용됩니다.(No linguistic content. Used for documenting messages)
  2. 그냥 리플레쉬하면 에러가 보임, 데이터 베이스 테이블 업데이트(Update database tables) 한다. (두가지 방법 있음)

SSH에서 확장 디렉토리로 이동하여 아래 명령을 내린다.
# cd /usr/home/ssam/www/html/wiki/maintenance 
# php update.php
웹 브라우저에서 업그레이드 설치를 해 준다.

확장 프로그램 환경 설정 참고


미디어위키 확장 UniversalLanguageSelector 참고


  • 특수:버전에서 확인해 볼 수 있다.
  • 벡터스킨(Vector skin) 로그인 부분에 언어 전환 아이콘이 생긴다.

환경 설정 방법

  • 확장 UniversalLanguageSelector 디렉토리에서 extension.json 파일을 열어 환경 설정을 할 수 있다.
아래와 같은 부분에 true 나 false로 수정하여 변경 할 수 있다.
	"config": {
		"@ULSGeoService": "ULS can use geolocation services to suggest languages based on the country the user is vising from. Setting this to false will prevent builtin geolocation from being used. You can provide your own geolocation by setting window.Geo to object which has key \"country_code\" or \"country\". If set to true, it will query Wikimedia's geoip service. The service should return jsonp that uses the supplied callback parameter.",
		"ULSGeoService": true,
		"@ULSEnable": "Enable language selection, input methods and webfonts for everyone, unless the behavior is overridden by the configuration variables below. Even if false the classes and resource loader modules are registered for the use of other extensions. Language changing via cookie or setlang query parameter is not possible.",
		"ULSEnable": true,
		"@ULSEnableAnon": "Equivalent to $wgULSEnable for anonymous users only. Does not have any effect if $wgULSEnable is false.",
		"ULSEnableAnon": true,
		"@ULSAnonCanChangeLanguage": "Allow anonymous users to change language with cookie and setlang query parameter. Do not use if you are caching anonymous page views without taking cookies into account. Does not have any effect if either of $wgULSEnable or $wgULSEnableAnon is set to false. @since 2013.04",
		"ULSAnonCanChangeLanguage": true,
		"@ULSLanguageDetection": "Try to use preferred interface language for anonymous users. Do not use if you are caching anonymous page views without taking Accept-Language into account. Does not have any effect if any of $wgULSEnable, $wgULSEnableAnon or $wgULSAnonCanChangeLanguage is set to false.",
		"ULSLanguageDetection": true,
		"@ULSIMEEnabled": "Enable the input methods feature for all users by default. Can be controlled by the user.",
		"ULSIMEEnabled": true,
		"@ULSWebfontsEnabled": "Enable the webfonts feature for all users by default. Can be controlled by the user. @since 2014.02",
		"ULSWebfontsEnabled": true,
		"@ULSMobileWebfontsEnabled": "Set whether webfont support is loaded within the mobile interface (via the MobileFrontend extension).",
		"ULSMobileWebfontsEnabled": false,
		"@ULSPosition": "The location and the form of the language selection trigger.  The possible values are: (a) \"personal\"- as a link near the username or the log in link in the personal toolbar (default). (b) \"interlanguage\": as an icon near the header of the list of interlanguage  links in the sidebar.",
		"ULSPosition": "personal",
		"@ULSEventLogging": "Whether to use EventLogging. The EventLogging extension must be installed if this option is enabled. @since 2013.06",
		"ULSEventLogging": false,
		"@ULSImeSelectors": "Array of jQuery selectors of elements on which IME should be enabled. @since 2013.11",
		"ULSImeSelectors": [
		"@ULSNoImeSelectors": "Array of jQuery selectors of elements on which IME must not be enabled. @since 2013.07",
		"ULSNoImeSelectors": [
		"@ULSNoWebfontsSelectors": "Array of jQuery selectors of elements on which webfonts must not be applied. By default exclude elements with .autonym because that style set font as Autonym @since 2013.09",
		"ULSNoWebfontsSelectors": [
			"#p-lang li.interlanguage-link > a"
		"@ULSFontRepositoryBasePath": "Base path of ULS font repository. If not set, will be set to 'UniversalLanguageSelector/data/fontrepo/fonts/', relative to $wgExtensionAssetsPath. @since 2013.10",
		"ULSFontRepositoryBasePath": false,
		"@ULSCompactLinks": "Whether the \"Compact language links\" Beta Feature is exposed. Requires $wgULSPosition to be \"interlanguage\". Defaults to false. @since 2014.03",
		"ULSCompactLinks": false

  • FreeGeoIP 사용여부 설정, 사용자의 아이피를 확인 후 그에 상응하는 언어 설정을 한다는 건데... 안전하지 않은 스크립트 로드가 표시됨 상당히 거슬린다. false 로 설정 하는게 정신 건강에 ....
"ULSGeoService": false,
  • 그냥 그데로 사용해도 된다.
아래 부분을 false 로 변경하면 로그인 사용자만 언어를 변경하여 볼 수 있다.
"ULSAnonCanChangeLanguage": false,
  • 쿠키파일이 생성되는 거니까 쿠키 허용이 되어 있어야 된다.

언어 아이콘 변경

아래 디렉토리에 icon-language.png 파일 변경 해 주면 된다.

번역 목표 참고

  • ko, en, zh, ja, de, el, es, fi, fr, hu, it, ru,