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