Omeka 영문 버젼 한글화 작업 관련 안내

edited April 2014 in OMEKA
Omeka는 AtoM과는 달리 현재 영문 버젼만 제공되고 있습니다.
AtoM의 경우 관리자가 페이지를 직접 번역할 수 있는 도구를 제공하거나 웹에서 번역 등록을 통해서 한글화 작업을 할 수 있지만 Omeka는 아쉽게도 그런 환경은 아직 지원하지 못하고 있습니다.

따라서, 만약 Omeka를 한글화 하려고 한다면 시스템의 아키텍쳐를 직접 분석해서 한글화 하는 방법을 모색해야 합니다.
여기서는 간단하게 직접 소스코드를 보면서 수정하는 방법을 안내드립니다.

Omeka의 기본 디렉토리 구조는 아래와 같습니다.
root
  l_ admin
  l_ application
       l_ config
       l_ controllers
       l_ forms
       l_ languages
       l_ libraries
       l_ logs
       l_ migrations
       l_ models
       l_ schema
       l_ scripts
       l_ views
       l_ models
  l_ files
  l_ install
  l_ plugins
  l_ themes

Omeka의 application > views > scripts 디렉토리에 들어가면 여러 개의 또다른 디렉토리가 나오는데 이 중에서 콜렉션 페이지의 한글화 하는 방법은 아래와 같습니다.
해당 디렉토리내의 php 파일을 하나씩 열어서 번역이 가능한 스크립트를 찾아서 직접 번역하는 방법입니다.
예를 들어 아래의 페이지는 application > views >scripts > collections 밑에 있는 browse.php 파일 원본 소스입니다.

# browse.php 기본 코드(번역 전)

<?php
$pageTitle = __('Browse Collections');
echo head(array('title'=>$pageTitle,'bodyclass' => 'collections browse'));
?>

<h1><?php echo $pageTitle; ?></h1>
<?php echo pagination_links(); ?>

<?php foreach (loop('collections') as $collection): ?>

<div class="collection">

    <h2><?php echo link_to_collection(); ?></h2>

    <?php if (metadata('collection', array('Dublin Core', 'Description'))): ?>
    <div class="element">
        <h3><?php echo __('Description'); ?></h3>
        <div class="element-text"><?php echo text_to_paragraphs(metadata('collection', array('Dublin Core', 'Description'), array('snippet'=>150))); ?></div>
    </div>
    <?php endif; ?>

    <?php if ($collection->hasContributor()): ?>
    <div class="element">
        <h3><?php echo __('Contributors'); ?></h3>
        <div class="element-text">
            <p><?php echo metadata('collection', array('Dublin Core', 'Contributor'), array('all'=>true, 'delimiter'=>', ')); ?></p>
        </div>
    </div>
    <?php endif; ?>

    <p class="view-items-link"><?php echo link_to_items_browse(__('View the items in %s', metadata('collection', array('Dublin Core', 'Title'))), array('collection' => metadata('collection', 'id'))); ?></p>

    <?php fire_plugin_hook('public_collections_browse_each', array('view' => $this, 'collection' => $collection)); ?>

</div><!-- end class="collection" -->

<?php endforeach; ?>

<?php echo pagination_links(); ?>

<?php fire_plugin_hook('public_collections_browse', array('collections'=>$collections, 'view' => $this)); ?>

<?php echo foot(); ?>


위의 코드에서 아래의 빨간색 표시처럼 수정을 한 다음 페이지 저장시 파일 인코딩 형식 utf-8 로 바꾼 후 저장하면 웹페이지에서 해당 내용이 번역된 것을 확인할 수 있습니다. 만약 페이지 상단에 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">를 넣지 않으면 한글 번역 부분은 알 수 없는 글자로 표기될 것입니다. 이 점 유의하시기 바랍니다.

# browse.php 수정 코드(번역 후)

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php
$pageTitle = __('컬렉션 보기');
echo head(array('title'=>$pageTitle,'bodyclass' => 'collections browse'));
?>

<h1><?php echo $pageTitle; ?></h1>
<?php echo pagination_links(); ?>

<?php foreach (loop('collections') as $collection): ?>

<div class="collection">

    <h2><?php echo link_to_collection(); ?></h2>

    <?php if (metadata('collection', array('Dublin Core', 'Description'))): ?>
    <div class="element">
        <h3><?php echo __('요약정보(Description)'); ?></h3>    * 더블린코어에서 Description은 번역시 '요약정보'로 표기하고 있습니다.
        <div class="element-text"><?php echo text_to_paragraphs(metadata('collection', array('Dublin Core', 'Description'), array('snippet'=>150))); ?></div>
    </div>
    <?php endif; ?>

    <?php if ($collection->hasContributor()): ?>
    <div class="element">
        <h3><?php echo __('기여자(Contributors)'); ?></h3>
        <div class="element-text">
            <p><?php echo metadata('collection', array('Dublin Core', 'Contributor'), array('all'=>true, 'delimiter'=>', ')); ?></p>
        </div>
    </div>
    <?php endif; ?>

    <p class="view-items-link"><?php echo link_to_items_browse(__('"%s"콜렉션에 있는 아이템 보기', metadata('collection', array('Dublin Core', 'Title'))), array('collection' => metadata('collection', 'id'))); ?></p>

    <?php fire_plugin_hook('public_collections_browse_each', array('view' => $this, 'collection' => $collection)); ?>

</div><!-- end class="collection" -->

<?php endforeach; ?>

<?php echo pagination_links(); ?>

<?php fire_plugin_hook('public_collections_browse', array('collections'=>$collections, 'view' => $this)); ?>

<?php echo foot(); ?>

Comments

  • transifex에 omeka 한글번역팀 만들어 놨습니다.
    번역하실 분은 번역자 신청해 주세요.
    AtoM 번역하셨던 분들은 그 아이디로 번역하실 수 있습니다.

  • 이승일선생님 글대로 .php파일을 수정하는 것이 가장 빠릅니다.
    하지만 어떤 문자열이 번역 대상인지 찾기가 쉽지 않을 경우 아래의 방법을 쓸 수 있습니다.
    transifex의 번역항목 중 Core를 예로 들면,

    스크린샷 2014-05-18 오후 1.36.19



    일단 해당 항목을 번역한 후,

    스크린샷 2014-05-18 오후 1.37.13



    '활용하기 위해 다운로드' 클릭

    스크린샷 2014-05-18 오후 1.36.30



    다운로드받은 파일을 메모장 등으로 열면,

    스크린샷 2014-05-18 오후 1.42.48

    위 번역항목별로 수정해야 할 php파일의 경로와 라인 위치를 보여준다.
    예를 들어 omeka 하위폴더 중 admin>themes>default>items> 하위에 browse.php 를 열어 22번째 줄을 수정하면 된다. 
  • edited May 2014
    Omeka 1.5 이상 버전에서는 omeka>application>config>config.ini를 텍스트편집기로 열어서 언어코드만 넣어주면 번역이 됩니다.

    locale="언어코드2~3자리"

    물론 transifex에 이미 번역이 되어 있어야 합니다.
    한글은 번역률 0%이므로 이에 해당되지 않습니다.


    Omeka 1.5 미만의 버전에서는 locale="" 이라는 기능이 없습니다.
    config.ini파일을 열어 일일이 번역해 줘야 합니다.

    링크 참고
    <참고사항>
    Omeka 1.3버전에서 config.ini파일 열어보니 번역할 만한 대상이 없었습니다.
    바로 윗 글처럼 하는 방법이 최선일 것 같습니다.
Sign In or Register to comment.