Lesson 1.1: File Systems & Extensions Under the Hood
Configure your operating system to show hidden extensions and understood the mechanics of file pathways.
1. Human Impact & Context
When you draft an email or write a document in a word processor, the operating system works behind the scenes to make the visual interface clean and simple. To shield everyday users from technical complexity, operating systems like macOS and Windows deliberately hide file extensions by default.
In general office work, hiding extensions is a minor detail. In localization engineering, it is a leading cause of broken pipelines and failed software builds:
The Hidden File Mistake: You open a JSON file named
strings.json, edit it, and save it using a standard text editor. Unknown to you, the OS quietly appends.txtto the end, turning your file intostrings.json.txt.The Production Crash: The automated build system or localization management system (LMS) scans the repository strictly looking for
strings.json. Because the file extension was altered, the system fails to find the asset, resulting in a failed build or untranslated UI strings in production.
By unmasking hidden file extensions and understanding how directory trees function, you transition from a passive computer user into an intentional digital architect who preserves file integrity across global workflows.
2. Core Concepts & Mechanics
File Extensions: Operating Systems vs. Raw File Data
A file extension (the suffix after the final period in a file name, such as .json, .vtt, or .csv) tells the operating system which program should open the file by default. However, changing a file’s extension does not change the actual structure of the data inside it.
Filename Structure:
[ base_filename ] . [ extension ]
strings jsonHidden Extension Risk: If system extensions are hidden, renaming
ui_local.jsontoui_local_v2.jsonin a standard dialog box often producesui_local_v2.json.txt.Explicit Control: Turning extensions ON ensures that every rename, save, or export action preserves the exact file format expected by build tools and translation pipelines.
Navigating Directory Trees & Relative Paths
Software applications rarely store all assets in a single folder. They rely on structured directory trees to organize source code, localized text, and media assets.
- project-root/
- assets/
- loc/
- en-US/
- dialogue.json
- ja-JP/
- dialogue.json
- src/
- index.html
project-root/
├── assets/
│ └── loc/
│ ├── en-US/
│ │ └── dialogue.json
│ └── ja-JP/
│ └── dialogue.json
└── src/
└── index.htmlTo access localized assets, engineering pipelines use path notation:
Absolute Paths: The complete path from the root of the file system (e.g.,
/Users/username/Projects/app/assets/loc/en-US/dialogue.jsonorC:\Users\username\Projects\app\assets\loc\en-US\dialogue.json). Absolute paths break when shared with team members because user directory structures differ across machines.Relative Paths: The path relative to the working directory of the project (e.g.,
assets/loc/ja-JP/dialogue.jsonor./assets/loc/ja-JP/dialogue.json). Relative paths ensure that project links remain functional regardless of whose machine or server hosts the repository.
Binary Files vs. Plain Text Files
Localization engineering requires distinguishing between two primary categories of digital files:
Swipe or scroll sideways to see more.
File Type Category | Extensions | Underlying Structure | Localization Impact |
|---|---|---|---|
Binary Files |
| Compiled, non-human-readable byte streams containing proprietary formatting codes or image raster data. | Cannot be directly edited inside code editors. Editing raw binary bytes corrupts the file permanently. |
Plain Text Files |
| Uncompiled, human-readable strings composed of standard characters, structural punctuation, and text formatting. | The foundational layer of localization pipelines. Direct editing in VS Code preserves code integrity and underlying structure. |
3. Real-World Industry Application
┌─────────────────────────────────────────┐
│ Localization Assets │
└────────────────────┬────────────────────┘
│
┌──────────────────────────────┼──────────────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Software UI │ │ Game UI │ │ Linear Media │
└───────┬───────┘ └───────┬───────┘ └───────┬───────┘
│ │ │
▼ ▼ ▼
i18next JSON String Tables WebVTT / SRT
(`en-US.json`) (`.csv`) (`.vtt`)Software UI (Web & Mobile): User interface text is commonly stored in key-value
.jsonor.xmlplain text files. A misplaced file extension or corrupt file path prevents the application from loading foreign language text strings.Game Localization: Game engines store dialogue arrays and user interface text in
.csvor.jsonplain text files. Pathing errors (e.g., pointing to/assets/loc/instead of/assets/localization/) result in missing text errors ("MISSING_STRING_KEY") during gameplay.Linear Media (Subtitling & Dubbing): Caption tracks are authored in plain text formats like WebVTT (
.vtt) or SubRip (.srt). Altering the extension to a binary format renders video players unable to parse timestamps and display subtitle overlays.
4. Cross-Platform Execution (macOS & Windows)
Before opening Visual Studio Code, you must configure your desktop environment to show all file extensions explicitly.
Step 1: Unhide File Extensions in Operating Systems
macOS (Finder)
Open Finder.
In the top menu bar, click Finder Settings... (or press
Cmd + ,).Click the Advanced tab.
Check the box for "Show all filename extensions".
Windows (File Explorer)
Open File Explorer (press
Win + E).Click View in the top ribbon menu.
Select Show check File name extensions.
Step 2: Navigating Directory Paths in VS Code
Once system extensions are visible, open Visual Studio Code to inspect relative pathways directly:
Open VS Code.
Open a project folder:
macOS:
FileOpen Folder...(Cmd + O)Windows:
FileOpen Folder...(Ctrl + K, thenCtrl + O)
View the Explorer Panel on the left side (
Cmd + Shift + Eon macOS /Ctrl + Shift + Eon Windows).Hover over any file to view its exact relative pathing within the project hierarchy.
5. Next Steps & Lab Practice
Now that you have configured your operating system to show hidden extensions and understood the mechanics of file pathways, you are ready to put these concepts into practice.
Proceed to 🛠️ Hands-On Lab 1.1: Workspace Setup & File Integrity, where you will safely create, move, rename, and verify plain-text files across relative directories in VS Code without corrupting extensions.
Ready to move on?
Mark this lesson complete when you’re ready.