É possível exibir os metadados em mais de uma língua ao mesmo tempo?

Olá!

Atualmente o OJS não tem como exibir os metadados do artigo (título, subtítulo e resumo) em mais de uma língua ao mesmo tempo. Para isso precisa mudar o idioma da interface. Por acaso há algum código ou plugin que possa fazer isso?

Obrigada desde já pela ajuda!

1 curtida

Olá!

Não encontrei um plugin que faça isso, mas encontrei uma solução no github da PKP: Enable simultaneous display of multilingual metadata · Issue #7272 · pkp/pkp-lib · GitHub

Posto aqui uma tradução e adaptação para artigos em português (“pt_BR”):

Quando você publicar artigos em português, certifique-se de que o título, subtítulo e resumo estejam disponíveis em inglês (ou no idioma extra que você quer apresentar) também. Exiba essas informações em um tamanho menor.

Essas ações garantirão que seus artigos estejam acessíveis em ambos os idiomas, português e inglês, de acordo com as suas necessidades.

Basicamente, você precisa modificar dois arquivos:

  1. \templates\frontend\objects\article_summary.tpl
  2. \templates\frontend\objects\article_details.tpl

As referências a $article->getLocalizedTitle() e ->getLocalizedAbstract() devem ser modificadas para loops nas estruturas de dados resultantes de article->getTitle() e ->getAbstract(), que são arrays. Você pode iterar sobre eles usando instruções foreach, por exemplo, se você não souber quantos idiomas você precisa gerenciar, ou simplesmente direcionar os idiomas de seu interesse.

O primeiro arquivo - article_summary.tpl - foi transformado em:

<div class="title">
	<a href="{url page="article" op="view" path=$articlePath}">
	{assign var="titlePt" value=$article->getTitle("pt_BR")}
	{assign var="titleEng" value=$article->getTitle("en_US")}
	{if $titlePt|count_characters > 0}
		{$titlePt|strip_unsafe_html}<br /><small>
	{/if}
	{$titleEng|strip_unsafe_html}
	{if $titlePt|count_characters > 0}
		</small>
	{/if}
	</a>
</div>

No segundo arquivo - article_details.tpl - observe que as linhas de código relatadas abaixo não são contínuas, há uma lacuna onde você vê a sequência “…”

<article class="obj_article_details">
{assign var="titlePt" value=$article->getTitle("pt_BR")}
{assign var="titleEng" value=$article->getTitle("en_US")}
{assign var="subtitlePt" value=$article->getSubtitle("pt_BR")}
{assign var="subtitleEng" value=$article->getSubtitle("en_US")}
<h1 class="page_title">
	{if $titlePt|count_characters > 0}
		{$titlePt|escape}
	{/if}
</h1>
{if $subtitlePt|count_characters > 0}
	<h2 class="subtitle">
		{$subtitlePt|escape}
	</h2>
{/if}
<h1 class="page_title">
{if $titleEng|count_characters > 0}
	{$titleEng|escape}
{/if}
</h1>
{if $subtitleEng|count_characters > 0}
	<h2 class "subtitle">
		{$subtitleEng|escape}
	</h2>
{/if}

...

{* Resumo *}
{assign var="abstractPt" value=$article->getAbstract("pt_BR")}
{assign var="abstractEng" value=$article->getAbstract("en_US")}

{if $abstractPt|count_characters > 0}
  <div class="item abstract">
    <h3 class="label">Resumo [pt]</h3>
  {$abstractPt|nl2br}
  </div>
{/if}
{if $abstractEng|count_characters > 0}
  <div class="item abstract">
    <h3 class="label">Resumo [eng]</h3>
  {$abstractEng|nl2br}
  </div>
{/if}

Atenção, nesse exemplo ajustei o idioma requisitado para Português (“pt_BR”) e Inglês (“en_US”), você precisa ajustar para os idiomas que usa na sua instalação.

2 curtidas