# lang/unset
Remove a translation. Publishes a change event on the `"lang"` pub/sub topic with `:value nil` and writes the app's catalog back to its source lang file. Returns `true` if the phrase was present.
## Syntax
[lang/unset $lang "app/phrase"]
## Parameters
- `$lang` — language code (string or keyword)
- `"app/phrase"` — catalog key: app name, `/`, phrase
## Examples
[lang/unset :es "chat/welcome"] # → true [lang/unset :es "chat/welcome"] # → false — already removed
## Returns
Boolean — `true` if the entry existed. `%Err{:message}` when fewer than two args are given, an argument is not a string or keyword, or the key lacks `app/phrase` form.
Publishing and file write-back happen only when an entry was actually removed. Subscribers receive `%{ :app :lang :phrase :value nil :old }`.
## See Also
`lang/set`, `lang/get`, `lang/load`