- The Problem with Google Takeout Files
- Project Aims
- Repository Structure
- How to Contribute
- Guidelines
- Future Work
Google Takeout is a service that allows users to export their data from various Google services. However, the exported structure depends partially on the user account's language settings. Some files or directories are named differently depending on the language, which can make it difficult to manage and process the data consistently.
The idea is to collect the different localizations used by Google and present them in a machine-readable format. This way, tool developers can use this data to create scripts or applications that can handle Google Takeout files regardless of the user's language settings.
The folder localizations contains the localization files in JSON format. Each file represents a Google service and contains the different localizations for the files and directories used by that service. Entries are hierarchical, with nested structures as follows:
-
Directories:
- Represented by the
kind: "directory"key. - Can contain subdirectories listed under the
directorieskey, and files listed under thefileskey.
- Represented by the
-
Files:
- Represented by the
kind: "file"key. - Can contain columns, which are listed under the
columnskey.
- Represented by the
-
Columns:
- Contain specific translation mappings for file headers.
{
"Service Name": {
"kind": "directory",
"localizations": {
"en": "Service Name",
"fr": "Nom du service"
},
"directories": {
"Subdirectory": {
"kind": "directory",
"localizations": {
"en": "Subdirectory",
"fr": "Nom du sous-répertoire"
},
"files": {
"file.csv": {
"kind": "file",
"localizations": {
"en": "file.csv",
"fr": "fichier.csv"
},
"columns": {
"Column Header": {
"en": "Column Header",
"fr": "En-tête de colonne"
}
}
}
}
}
}
}
}Note: Provide translations based on the exact file names delivered by the Takeout service.
Create a new file in the localizations directory with the name of the product (e.g., ProductName.json). Use the following format:
{
"Product Name": {
"translations": {
"kind": "directory",
"fr": "Nom du produit",
"es": "Nombre del producto",
"ru": "Название продукта"
},
"directories": {},
"files": {}
}
}Locate the element in the JSON file and add a new key under the localizations object for the desired language. Use the following format:
"localizations": {
"fr": "fichier.csv",
"es": "archivo.csv",
"de": "datei.csv"
}- Fork the repository and create a new branch for your changes.
- Follow the existing structure for directories and files.
- Always include the
kindkey to specify whether the entry is a directory or a file. - Use the
columnsobject to define translations for file headers. - Ensure all translations are based on the actual files delivered by the Takeout service.
- Submit a pull request with a clear description of your changes.
- Expand the localization files to include more Google services.
- Provide packages for different programming languages to make it easier to use the localization files.