Supported formats

For your convenience, Ackuna accepts a number of text formats when creating a new project.

Depending on your needs, you can choose whichever of the following methods is easiest for you to work with.


.strings

iOS strings format

You can create a simple, specially-formatted strings file, such as the following example. This system is most useful for translating websites, software, and other applications.

/* Comments will not be translated. */

"VARIABLE_NAME" = "Hello";

"VARIABLE_NAME_2" = "When using \"quotes\" in strings they should be escaped.";

"VARIABLE_NAME_3" = "Multi-line strings 
are okay, too.";

Note: The first value between the quotation marks is treated as a variable and is not translated. The second value between the quotation marks is treated as the text to translate.

Download demo.strings example file


.xml

Android XML format

A simple XML structure like the example below can easily be stripped down, translated, and rebuilt.

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string name="string_1">Hello</string>
	<string name="string_2">Goodbye</string>
	<string name="string_3">A full sentence with punctuation is okay, too.</string>
	<string name="string_4">Special characters %s permissible.</string>
</resources>

Download demo.xml example file


.rrc

Blackberry resource file format

LABEL_ONE#0="Hello";
LABEL_TWO#0="Goodbye";
LABEL_THREE#0="A full sentence with punctuation is okay, too.";
LABEL_FOUR#0="Special characters %s and \"markup\" permissible.";

Download demo.rrc example file


.properties

Java configuration file format

# Comments are not transkated.
! The exclamation mark can also mark text as comments.
my.first_string		= Hello
my.second_string	= Be sure to include whitespace before your string.
# The key and element characters #, !, =, and : are written with a preceding backslash to ensure that they are properly loaded.
string_with_special_characters = Visit http\://ackuna.com today\!
# Spaces are allowed in keys if they are escaped properly.
key\ with\ spaces = This is the value that could be looked up with the key "key with spaces".

Download demo.properties example file


.yml

YAML (Ruby)

---
label_1: "Hello"
group_1:
    label_2: "Goodbye"
    label_3: "A full sentence with punctuation is okay, too."
label_4: "Special characters %s and <b>markup</b> permissible."

Download demo.yml example file


.resw

Windows 8 Localization File

<?xml version="1.0" encoding="utf-8"?>
<root>
	<!-- Comments and resheader data are not translated. -->
	<resheader name="resmimetype">
		<value>text/microsoft-resx</value>
	</resheader>
	<data name="yourLabelHere" xml:space="preserve">
		<value>Your text string values will be translated.</value>
	</data>
</root>

Download demo.resw example file


.resx

ASP.NET Resource File

<?xml version="1.0" encoding="utf-8"?>
<root>
	<!-- Comments and meta data will not be translated. -->
	<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
		<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
		<xsd:element name="root" msdata:IsDataSet="true">
			<xsd:complexType>
				<xsd:choice maxOccurs="unbounded">
					<xsd:element name="metadata">
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element name="value" type="xsd:string" minOccurs="0" />
							</xsd:sequence>
							<xsd:attribute name="name" use="required" type="xsd:string" />
							<xsd:attribute ref="xml:space" />
						</xsd:complexType>
					</xsd:element>
				</xsd:choice>
			</xsd:complexType>
		</xsd:element>
	</xsd:schema>
	<resheader name="foo">
		<value>Header data will not be translated either.</value>
	</resheader>
	<data name="FirstString" xml:space="preserve">
		<value>Only these two "data" strings will be translated.</value>
	</data>
	<data name="SecondString" xml:space="preserve">
		<value>So this string will be translated, too!</value>
	</data>
</root>

Download demo.resx example file


.xls and .xlsx

Microsoft Office and Open Office Spreadsheets

Ackuna can accept specially-formatted spreadsheets in both .xls and .xlsx formats.

Because Ackuna needs spreadsheets to be in a specific structure in order to properly parse the text, we have created a detailed spreadsheet help page to assist users in creating a properly-formatted spreadsheet file.


.po Updated!

Portable Object (GNU gettext file)

Ackuna has updated its Portable Object file parser. Projects uploaded in .po format no longer include header data as translated text.

Additionally, if you already have translations submitted within "msgstr" tags in the document, they will be automatically submitted for proofreading to your project on Ackuna.

When downloading your completed project, the target language header data will be updated with the correct language code automatically.

# Comments and header data will not be translated.

msgid ""
msgstr ""
"POT-Creation-Date: 2014-12-31 12:00-0400\n"
"PO-Revision-Date: 2015-01-01 12:00-0400\n"
"Language: xx\n"
"Last-Translator: Jane Doe <jane.doe@eample.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"

msgid "Hello"
msgstr ""

msgid ""
"A segment spanning multiple lines "
"can be translated as well."
msgstr ""

msgid "Translations from pre-translated segments will be submitted, based on the language data set in the header."
msgstr "Anslationstray omfray e-translatedpray egmentsay illway ebay ubmittedsay, asedbay onay ethay anguagelay ataday etsay inay ethay eaderhay."

msgid "Special characters %s and \"other\" <b>markup</b> permissible."
msgstr ""

Download demo.po example file


.xlf and .xliff Updated!

XLIFF XML Localization Interchange File Format

Ackuna has updated its XLIFF parser. Projects uploaded in XLIFF format no longer include header data as translated text.

Additionally, if you already have translations submitted within <target> tags in the document, they will be automatically submitted for proofreading to your project on Ackuna. To automatically mark any of your original translations as "accepted" on Ackuna, simply set the "approved" attribute to yes in your open <target> translation tag.

When downloading your completed project, the target language header data will be updated with the correct language code automatically.

<?xml version="1.0" encoding="utf-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
	<file datatype="html" original="demo.ssi" source-language="en" target-language="es">
		<body>
			<trans-unit id="label_1" approved="no">
				<source>Hello</source>
				<target></target>
			</trans-unit>
			<trans-unit id="label_2" approved="no">
				<source>Translations from pre-translated segments will be submitted.</source>
				<target>Anslationstray omfray e-translatedpray egmentsay illway ebay ubmittedsay.</target>
			</trans-unit>
			<trans-unit id="label_3" approved="yes">
				<source>Translations marked as "approved" will be automatically marked as "accepted" on Ackuna.</source>
				<target>Anslationstray arkedmay asway "approvedway" illway ebay automaticallyway arkedmay asway "acceptedway" ybay Ackunaway.</target>
			</trans-unit>
			<trans-unit id="label_4" approved="no">
				<source>Some "special" &lt;b&gt;characters&lt;/b&gt; are permitted.</source>
				<target></target>
			</trans-unit>
		</body>
	</file>
</xliff>

Download demo.xlf example file

Feedback