File Extensions                            
.csv
API Extension                              
 csv
Import                                          
Yes
Export                                          
Yes
Pluralization supported?            
Yes
Descriptions supported?            
Yes
Format Options
key_index, comment_index, column_separator, quote_char, header_content_row, enable_pluralization

Params

Locale mapping 

Identifier
Type

locale_mapping  
Type

hash  
Upload

Yes      
Download
No              
Default
[optional]
Description
Hash mapping each locale name to the column index it is contained in. Column indices start at 1

Format Options 

Key Index

Identifier
key_index  
Type

integer  
Upload

Yes      
Download
No              
Default
1
Description
Index of the column containing the key names. Column indexes start at 1.

Comment Index 

Identifier
comment_index  
Type

integer  
Upload

Yes      
Download
No              
Default
3
Description
Index of the column containing description for the key. Column indexes start at 1 .

Column separator 

Identifier
column_separator  
Type

string  
Upload

Yes      
Download
No              
Default
,
Description
Char that is used to separate columns.

Quote char

Identifier
quote_char
Type

string
Upload

Yes
Download
No
Default
"
Description
Char that is used to quote newlines and column separator.

Header content row 

Identifier
header_content_row
Type

boolean
Upload

Yes
Download
No
Default
false
Description
Indicates whether the first row contains only header information and should be skipped.

Enable pluralization 

Identifier
enable_pluralization
Type

boolean
Upload

Yes
Download
No
Default
false
Description
Enables detection of pluralized keys. All matching keys will be persisted as pluralized keys.

Code Sample 

boolean_key,"--- true
"
empty_string_translation,""
key_with_description,Check it out! This key has a description! (At least in some formats),This is the amazing description for this key!
key_with_line-break,"This translations contains
a line-break."
nested.deeply.key,"Wow, this key is nested even deeper."
nested.key,This key is nested inside a namespace.
null_translation,
pluralized_key.one, "Only one kitten found."
pluralized_key.other,"Wow, you have %s kittens!"
pluralized_key.zero,"You have no kittens."
sample_collection,"---
- first item
- second item
- third item
"
simple_key,Just a simple key with a simple message.
unverified_key,This translation is not yet verified and waits for it. (In some formats we also export this status)

File structure

A typical CSV file should be structured like this:

1 (Key column), 2 (Translation column), 3 (Comment column)
app_title,      My Software Project,    This is the main title
apples.zero,    one apple,              my comment
...

Configuration example

An example for the push section in your .phraseapp.yml for CSV files.

push:
    sources:
        - file: "./multi.csv"
          params:
              update_translations: true
              locale_mapping:
                  en: 2
                  de: 3
              format_options:
                  comment_index: 4

Pluralization

This format uses named categories to identify the different pluralizations of a key. The following categories are reserved for pluralization:

.zero | .one | .two | .few | .many | .other

Example key names:
inbox.messages.notification.one
inbox.messages.notification.other

This way pluralized keys can be identified, persisted and marked accordingly.
Learn more about pluralization?

Did this answer your question?