# lang/load
Load a lang file into the catalog, replacing any existing entries for the app. The file is a nested map: `%{ :fallback "en" :es %{ :welcome "Hola, {name}" } }`. The app name defaults to the file's parent directory name.
## Syntax
[lang/load "path" ?app]
## Parameters
- `"path"` — lang file path (string)
- `?app` — (optional) app name (string or keyword); defaults to the file's directory name.
## Examples
[lang/load "packages/chat/lang.dft"] # app "chat" from the dir name [lang/load "tmp/strings.dft" "chat"] # explicit app
## Returns
Boolean — `true` when the file exists and parses to a map, `false` on any read/parse failure. `%Err{:message}` when the path is missing, the app argument is not a string/keyword, or no app name can be derived from the path.
The file becomes the app's write-back target for `lang/set`/`lang/unset`. Map entries above the phrase level are treated as languages, `:fallback` sets the fallback language, and only string phrase values are stored.
## See Also
`lang/get`, `lang/set`, `lang/langs`