미디어위키/미디어위키 익스텐션

미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) LocalisationUpdate 설치와 활용

씨실과 날실 2020. 5. 6. 14:00

[익스텐션 목록]

기본 익스텐션

2019/10/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Interwiki 설치와 활용

2020/04/28 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Nuke 설치와 활용

2020/04/28 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Renameuser 설치와 활용

2020/04/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) CiteThisPage 설치와 활용

2020/04/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Replace Text 설치와 활용

2020/04/29 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) WikiEditor 설치와 활용

2020/04/30 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) CodeEditor 설치와 활용

2020/04/30 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) CategoryTree 설치와 활용

2020/05/01 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Cite 설치와 활용

2020/05/01 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) ImageMap 설치와 활용

2020/05/02 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) InputBox 설치와 활용

2020/05/02 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) ParserFunctions 설치와 활용

2020/05/03 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Poem 설치와 활용

2020/05/03 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) SyntaxHighlight 설치와 활용

2020/05/04 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) PDF Handler 설치와 활용

2020/05/04 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) ConfirmEdit 설치와 활용

2020/05/05 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) SpamBlacklist 설치와 활용

2020/05/05 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) TitleBlacklist 설치와 활용

2020/05/06 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) Gadgets 설치와 활용

2020/05/06 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) LocalisationUpdate 설치와 활용

2020/05/07 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) MultimediaViewer 설치와 활용

2020/05/07 - [미디어위키/미디어위키 익스텐션] - 미디어위키(Mediawiki) 기본 제공 익스텐션(Extension) OATHAuth 설치와 활용




[LocalisationUpdate 익스텐션 관련 정보]

익스텐션 공식 안내 페이지

https://www.mediawiki.org/wiki/Extension:LocalisationUpdate

다운로드

미디어위키 내 배포 페이지

https://www.mediawiki.org/wiki/Special:ExtensionDistributor/LocalisationUpdate

github 페이지

https://github.com/wikimedia/mediawiki-extensions-LocalisationUpdate



LocalisationUpdate 익스텐션 기능

현지화된 메시지를 가능한 한 최신 상태로 유지할 수 있는 기능을 제공하는 특수 문서 형식의 익스텐션입니다.




익스텐션 다운로드 및 설치

다운로드 안내

익스텐션 다운로드 및 설치 방법은 아래 링크를 참고하시기 바랍니다.


사용 중인 미디어위키의 버전에 맞는 배포 익스텐션 압축 파일을 다운로드받습니다.

다운로드 받은 압축 파일을 서버 안 미디어위키 설치 폴더 내에 있는  extensions폴더 안에 풀어줍니다.

리눅스 서버의 경우

$ sudo tar -xzf LocalisationUpdate-REL1_34-1eefac2.tar.gz -C /미디어위키 설치 경로/extensions


예시 - Ubuntu

$ sudo tar -xzf LocalisationUpdate-REL1_34-1eefac2.tar.gz -C /var/www/html/w/extensions

위 명령은 제 블로그를 그대로 따라오신 분의 경우 적용되는 예시입니다.


윈도 서버의 경우

탐색기로 압축 파일을 해당 위치에 풀어주시면 됩니다.


호스팅을 받는 경우

파일질라, 알FTP 등 FTP 프로그램을 이용해 미리 풀어 놓은 익스텐션 폴더(LocalisationUpdate)를 통째로 해당 위치에 전송해줍니다.




LocalisationUpdate 익스텐션 필수 설정

미디어위키의 환경 설정 파일인 LocalSettings.php 파일에 다음과 같은 코드를 추가해줍니다.

wfLoadExtension( 'LocalisationUpdate' );


... 전략 ...

# Enabled extensions. Most of the extensions are enabled by adding
# wfLoadExtensions('ExtensionName');
# to LocalSettings.php. Check specific extension documentation for more details.
# The following extensions were automatically enabled:
wfLoadExtension( 'CategoryTree' );
wfLoadExtension( 'Cite' );
wfLoadExtension( 'CiteThisPage' );
wfLoadExtension( 'CodeEditor' );
wfLoadExtension( 'ConfirmEdit' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'ImageMap' );
wfLoadExtension( 'InputBox' );
wfLoadExtension( 'Interwiki' );
wfLoadExtension( 'LocalisationUpdate' );
wfLoadExtension( 'MultimediaViewer' );
wfLoadExtension( 'Nuke' );
wfLoadExtension( 'OATHAuth' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'PdfHandler' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'Renameuser' );
wfLoadExtension( 'ReplaceText' );
wfLoadExtension( 'SpamBlacklist' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'TitleBlacklist' );
wfLoadExtension( 'WikiEditor' );

# End of automatically generated settings.
# Add more configuration options below.

... 후략 ...

미디어위키 설치시 기본 제공 익스텐션을 함께 설치하도록 설정한다면 코드는 보통 위 예시와 같은 위치에 추가됩니다.


익스텐션 로드 코드를 작성하고 아래에 다음과 같은 코드를 작성해줍니다.

$wgLocalisationUpdateDirectory = "$IP/cache";

코드 추가 후 LocalSettings.php 파일을 저장한 다음 미디어위키 디렉터리에 하위 디렉터리인 cache 디렉터리를 생성하고 해당 디렉터리의 쓰기 권한을 부여해줍니다.

참고

일반적으로 cache 디렉터리는 미디어위키 설치시 자동으로 생성됩니다.


퍼미션(권한설정) 작업 예시

study@study-VirtualBox:/var/www/html/w$ sudo chmod 755 cache
study@study-VirtualBox:/var/www/html/w$ ls -al |grep cache
drwxr-xr-x   2 root     root        4096 12월  8  2018 cache
study@study-VirtualBox:/var/www/html/w$



### 관리자 인터위키 편집 ###
# wfLoadExtension( 'LocalisationUpdate' );
// https://www.mediawiki.org/wiki/Extension:LocalisationUpdate
// LocalisationUpdate cache Directory
$wgLocalisationUpdateDirectory = "$IP/cache";


설치 확인

미디어위키의 특수:버전(= Special:Version) 문서를 확인하면 위 익스텐션이 추가된 것을 확인할 수 있습니다.




LocalisationUpdate 익스텐션 구성 설정

$wgLocalisationUpdateDirectory

캐시 파일을 저장할 디렉토리를 설정합니다.

만약 따로 설정하지 않은 경우 기본 $wgCacheDirectory의 값을 사용합니다.

LocalisationUpdate 익스텐션은 파일을 저장할 위치가 필요합니다. $wgLocalisationUpdateDirectory 나 $wgCacheDirectory가 설정되어 있지 않으면 LocalisationUpdate의 update.php 스크립트가 작동하지 않습니다.

$wgLocalisationUpdateDirectory는 기본적으로 false로 설정되어 있습니다.


$wgLocalisationUpdateRepository

번역을 가져올 기본 저장소입니다. GitHub가 기본 저장소로 설정되어 있습니다.


$wgLocalisationUpdateRepositories

핵심 MediaWiki 및 익스텐션에 대한 현지화(로컬라이징)를 검색할 저장소 URL의 배열입니다.

기본값은 GitHub의 MediaWiki Git 리포지토리로 설정되어 있습니다. 만약 이에 대한 제반 지식이 없다면 함부로 수정하지 마시기 바랍니다.


GitHub를 사용할 때

$wgLocalisationUpdateRepositories['github'] = array(
    'mediawiki' =>
        'https://raw.github.com/wikimedia/mediawiki/master/%PATH%',
    'extension' =>
        'https://raw.github.com/wikimedia/mediawiki-extensions-%NAME%/master/%PATH%',
    'skin' =>
        'https://raw.github.com/wikimedia/mediawiki-skins-%NAME%/master/%PATH%'
);


로컬 파일 시스템을 사용할 때

$wgLocalisationUpdateRepositories['local'] = array(
    'mediawiki' =>
        'file:///resources/projects/mediawiki/master/%PATH%',
    'extension' =>
        'file:///resources/projects/mediawiki-extensions/extensions/%NAME%/%PATH%',
    'skin' =>
        'file:///resources/projects/mediawiki-skins/skins/%NAME%/%PATH%'
);



미디어위키 버전 1.35부터 추가된 변수 코드

$wgLocalisationUpdateHttpRequestOptions

위 코드는 Http::get()에 전달할 옵션을 설정하는 것으로, 고급 사용자용 코드입니다.

이에 대한 보다 자세한 내용은 아래 링크를 참고하시기 바랍니다.


현지화 업데이트 방법

업데이트 실행

$ php extensions/LocalisationUpdate/update.php


실행 예시

study@study-VirtualBox:/var/www/html/w$ php extensions/LocalisationUpdate/update.php
Updating component core-0
Updating component api-0
Updating component oojs-ui-0
LocalisationUpdate\Updater::execute: Unable to fetch messages from https://raw.github.com/wikimedia/mediawiki/master/resources/lib/oojs-ui/i18n/*.json
Updating component MonoBook-0
Updating component Timeless-0
Updating component Vector-0
Updating component CategoryTree-0
Updating component cite-0
Updating component ve-cite-0
Updating component CiteThisPage-0
Updating component CodeEditor-0
Updating component ConfirmEdit-0
Updating component Gadgets-0
Updating component ImageMap-0
Updating component InputBox-0
Updating component Interwiki-0
Updating component LocalisationUpdate-0
Updating component MultimediaViewer-0
Updating component Nuke-0
Updating component OATHAuth-0
Updating component ParserFunctions-0
Updating component PdfHandler-0
Updating component Poem-0
Updating component Renameuser-0
Updating component ReplaceText-0
Updating component SpamBlackList-0
Updating component SyntaxHighlight_GeSHi-0
Updating component TitleBlacklist-0
Updating component WikiEditor-0
Updating component apex-0
Updating component MobileFrontend-0
Updating component GeoData-0
Updating component MinervaNeue-0
Found no new translations
study@study-VirtualBox:/var/www/html/w$

위 예시를 보면 가끔 깃허브의 미디어위키 서버 사정으로 가져오지 못하는 경우도 생깁니다.

주의

기본 스킨과 익스텐션만 설치되어 있는 경우에 업데이트는 1시간 이상 걸렸습니다. 설치된 스킨과 익스텐션이 더 많은 경우, 더 오랜 시간이 걸릴 것입니다. 따라서 LocalisationUpdate는 시간이 충분할 때만 실행하시기 바랍니다.



자동 업데이트 구성

crontab에 LocalisationUpdate를 추가해주시면 됩니다.

터미널에 crontab -e를 실행하면 사용할 편집기를 고르도록 선택지가 나옵니다. 원하는 편집기를 선택 후 아래 문구를 하단에 추가해주시면 됩니다.

# Add the following line
@daily php /path/to/your/wiki/extensions/LocalisationUpdate/update.php --quiet


LocalisationUpdate가 정상적으로 실행되지 않는 경우

LocalisationUpdate가 정상적으로 실행되지 않는 경우 rebuildLocalisationCache.php를 강제로 실행해주어야 합니다.

$ php maintenance/rebuildLocalisationCache.php --force


실행 예시

study@study-VirtualBox:/var/www/html/w$ php maintenance/rebuildLocalisationCache.php --force
Rebuilding ab...
Rebuilding ace...
Rebuilding ady...
...
Rebuilding zh-sg...
Rebuilding zh-tw...
Rebuilding zu...
407 languages rebuilt out of 407
study@study-VirtualBox:/var/www/html/w$