arteq/

xliff

读取和写入 XLIFF 文件,简单元素操作

v1.0.10 2020-12-09 17:21 UTC

This package is auto-updated.

Last update: 2024-09-10 01:27:59 UTC


README

描述

一个用于快速读取/写入memoQ生成的XLIFF文件的辅助库。它提供了对纯文本源/目标翻译单元段的轻松访问,包含平铺的<mrk>后编辑标记(插入和删除),并使用一个UTF-8符号替换memoQ内部标签(<bpt><ept><sub><it><ph><ut><hi>),以便在第三方应用程序中进行简单编辑。保存文件时,将这些占位符替换回原始XML标签元素。

安装

运行 composer 以从 Bitbucket 存储库检索项目

$ composer require arteq/xliff

可选:您可以运行测试(phpUnit,CS-Fixer,PHPStan)

$ make

注意:代码质量测试需要 PHP 7.x。如果您正在运行 PHP 5.6,则可以使用简化版的 composer_php56.json 文件,并且只运行 phpUnit 测试

$ env COMPOSER=composer_php56.json composer install
$ make phpunit

该库本身在 PHP 5.x 和 7.x 上均可正常运行。

用法

读取文件并显示所有内容

<?php
require __DIR__ . '/vendor/autoload.php';

use ArteQ\CSX\Xliff\Xliff;

try
{
	$xliff = new Xliff();
	$xliff->readFile('sample.mqxliff');

	$fileHeader = $xliff->getFileHeader();
	$transUnits = $xliff->getTransUnits();

	// show top level <file> attributes
	var_dump($fileHeader->getAttributes());

	// show <file/header> elements with attributes
	// note: some elements are ignored during read, see: src/FileHeader.php $ignoredHeaderElements
	var_dump($fileHeader->getElements());

	// show translation units with attributes, tags and plain-text source/target
	foreach ($transUnits as $transUnit)
	{
		var_dump($transUnit->getSegment());
	}
}
catch (\Exception $e)
{
	$error = $e->getMessage();
}

创建新段并写入文件

$tu = new TransUnit();
$tu->setSegment(['source' => 'Source segment.', 'target' => 'Translated segment.', 'attributes' => ['id' => 1]]);

$this->xliff->addTransUnit($tu);
$xliff->saveFile('file.mqxliff');

示例

有关更多代码示例,请参阅 tests 目录。

有关简单的在线解析工具,请参阅: https://test.asd123.pl/cs/xliff_debug/