Download and Export
Downloading your translations in various formats and understanding export structures
Download and Export
This guide covers everything you need to know about downloading your translations from MovaBase in your preferred format, from understanding the available export options to managing downloaded ZIP files.
Download Overview
The download feature is located in the Languages section of your project sidebar, making it easily accessible while working with translations.
Download Button Location
| Component | Location | Purpose |
|---|---|---|
| Download Button | Languages section in sidebar (left side) | Quick access without leaving translations tab |
| Download Button | File management actions (in file-based mode) | Part of upload/download actions group |
The download button appears in both the Languages section and as part of the file management actions group in file-based mode. You can initiate downloads from either location.
Download Format Dialog
When you click the download button, a dialog appears allowing you to select your preferred export format.
The download format dialog shows all available formats with their file extensions, making it easy to identify the right format for your platform.
NEEDS_MEDIA
Available Export Formats
MovaBase supports multiple export formats to ensure compatibility with your development stack and target platforms.
JSON Format
JSON (JavaScript Object Notation) is the most common translation format for web applications and modern frameworks.
Structure
Key-value pairs with support for nested objects:
{
"welcome_message": "Welcome to our application!",
"auth": {
"login": {
"title": "Sign In",
"button": "Login"
}
}
}Benefits
- Human-readable and easy to edit
- Widely supported across frameworks
- Supports nested structures for organization
- Can be minified for production
When to Use JSON Format
- Web applications using JavaScript frameworks
- React, Vue, Angular, and similar frameworks
- Node.js applications
- Mobile web applications
- Any project using JSON as data format
PO Format
PO (Portable Object) format is the standard format for gettext-based localization systems, commonly used with PHP, Python, and many other platforms.
Structure
Simple key-value pairs with optional plural forms:
msgid "welcome_message"
msgstr "Welcome to our application!"
msgid "one_item"
msgid_plural "%d items"
msgstr[0] "1 item"
msgstr[1] "%d items"Features
- Standard gettext format with plural support
- Includes context comments for translators
- Supports both source (.po) and compiled (.mo) files
- Automatically compiles to .mo for production use
When to Use PO Format
- PHP applications using gettext
- Python applications with gettext
- Ruby on Rails applications
- Node.js applications with gettext libraries
- Any project requiring standard localization format
iOS Strings Format
.strings format is the native localization format for iOS and macOS applications developed by Apple.
Structure
Key-value pairs with quotes:
/* Login Screen */
"login.title" = "Sign In";
"login.button" = "Login";
/* Dashboard */
"dashboard.welcome" = "Welcome to Dashboard";Features
- Native iOS/macOS format
- Supports code comments for organization
- Optimized for iOS localization
- Automatic folder structure in exports
When to Use iOS Strings Format
- iOS applications built with Xcode or Swift
- macOS applications
- Cross-platform apps using Apple platforms
Android XML Format
XML is the standard resource format for Android applications.
Structure
XML tags with string resources:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My Application</string>
<string name="welcome_message">Welcome to our app!</string>
<string name="login_button">Login</string>
</resources>Features
- Standard Android resource format
- Supports XML escaping for special characters
- Optimized for Android build system
- Automatic values folder structure in exports
When to Use Android XML Format
- Android applications built with Android Studio or Gradle
- Native Android development
- Cross-platform mobile applications with Android components
Each format is optimized for its target platform, ensuring your translations work seamlessly with your development tools and build pipeline.
NEEDS_MEDIA
Download Process
Downloading your translations is straightforward with MovaBase's streamlined download process.
Step-by-Step Download
- Click the download button in the Languages section or file management group
- Select your preferred export format from the dialog
- Choose to download as ZIP (recommended)
- The ZIP file downloads automatically to your computer
Download Dialog Features
The download format dialog provides these features:
| Feature | Description |
|---|---|
| Format Preview | Shows all available formats with icons and extensions |
| Format Selection | Click to select your preferred format |
| Download Button | Primary action to trigger download |
| Current Mode Indicator | Shows file-based or language-based mode |
The download dialog remembers your last selected format for the project, making it quick to download multiple times with the same settings.
Download Mode Effects
Your chosen download mode (configured in project settings) affects how your translations are structured in the downloaded ZIP file.
File-Based Mode Download Structure
In file-based mode, translations are organized by language folder and by file:
translations-file-based.zip
├── en/
│ ├── common.json
│ ├── auth.json
│ ├── dashboard.json
│ └── settings.json
├── es/
│ ├── common.json
│ ├── auth.json
│ ├── dashboard.json
│ └── settings.json
└── fr/
├── common.json
├── auth.json
├── dashboard.json
└── settings.jsonEach language folder contains separate files for different features or components, matching how you might organize them in your application.
Language-Based Mode Download Structure
In language-based mode, translations are organized as a single file per language:
translations-language-based.zip
├── en.json
├── es.json
└── fr.jsonEach JSON file contains all translations for that language in a flat structure.
You can switch between download modes at any time from project settings. However, be aware that this changes how files are structured when exported, not how they are stored in MovaBase.
Using Downloaded Files
After downloading, you can integrate the translation files into your application or deployment pipeline.
JSON Integration
Import the JSON files directly into your web framework:
// Example for React
import translations from './translations/en.json';
export default function App() {
return (
<div>
<h1>{translations.welcome_message}</h1>
<button>{translations.auth.login.title}</button>
</div>
);
}// Example for Vue
import translations from './locales/en.json';
export default {
data() {
return {
translations: require('./translations/en.json')
};
}
}iOS Integration
Import .strings files into your Xcode project:
- Locate the downloaded .strings file
- Drag and drop into your Xcode project navigator
- Xcode will automatically add it to your target
- The strings will be available for use in your app
Android Integration
Import .xml files into your Android Studio project:
- Open your Android Studio project
- Navigate to the res/ directory
- Copy your downloaded XML file
- Android Studio will automatically parse and import the resources
PO Integration with .mo
If you downloaded PO format, you received both the source .po file and compiled .mo file:
| File | Purpose | When to Use |
|---|---|---|
| .po (source) | Editing, translating, or reviewing | When you need to work with translations |
| .mo (compiled) | Production deployment | When integrating into your application or build process |
Most gettext-based systems will use the .mo file for runtime translations while the .po file is used by translators and for version control.
Best Practices for Download and Export
Format Selection
Version Management
MovaBase does not version your downloaded files. Consider using version control (Git, Bitbucket integration) to track changes to translation files between team members and across deployments.
File Organization
Maintain clear file organization after downloading:
| Practice | Description | Benefit |
|---|---|---|
| Keep Original Structure | Preserve file-based or language-based organization | Easy integration with existing workflows |
| Rename Appropriately | Rename files to match your project structure if needed | Avoids breaking imports |
| Document Format Choices | Record which formats work best for your team | Helps new team members understand decisions |
| Test Before Deployment | Verify files work correctly in your application | Prevents runtime errors |
NEEDS_MEDIA
Troubleshooting
Common Issues
NEEDS_MEDIA
Automation
Programmatic Download
MovaBase provides API access for programmatic download of translations, enabling automation in your CI/CD pipelines and deployment workflows.
| Feature | Use Case | |---------|-------------|----------| | API Keys | Generate API keys for secure access | Automate downloads in builds | | Export Endpoints | REST endpoints for translation export | Integration with build tools | | Webhook Notifications | Get notified of translation changes | Trigger automated exports | | Format Selection | Specify format via API parameters | Consistent exports across environments |
API access is available for users with appropriate permissions (Developer role or higher). Check your project settings to manage API keys.
Part 7 of 14 • Download and Export Complete
Next: File Upload and Import