GettextOps.Operations.ListUntranslated (gettext_ops v0.1.1)
View SourceList untranslated entries operation for finding entries with empty translations.
This module provides functionality to list all translation entries in .po files that have empty msgstr fields. This is one of the most frequently used operations for developers and LLM agents, as it provides exactly the entries that need translation without loading entire files.
Token Efficiency
Instead of reading a 5000-line .po file (~15k tokens), this operation returns only the untranslated entries (e.g., 10 entries ~500 tokens).
Options
:locale- (required) The locale to list untranslated entries from (e.g., "sv", "en"):domain- The domain to search in (defaults to configured default_domain):limit- Maximum number of results to return (default: nil for unlimited)
Examples
# List all untranslated entries
{:ok, messages} = GettextOps.Operations.ListUntranslated.run(locale: "sv")
# Limit results (useful for LLMs)
{:ok, messages} = GettextOps.Operations.ListUntranslated.run(locale: "sv", limit: 10)
# Specific domain
{:ok, messages} = GettextOps.Operations.ListUntranslated.run(locale: "sv", domain: "errors")
Summary
Functions
@spec run(keyword()) :: {:ok, [Expo.Message.t()]} | {:error, term()}
List all untranslated entries for a given locale.
Returns {:ok, messages} on success or {:error, reason} on failure.
Parameters
opts- Keyword list of options (see module documentation)
Examples
# List all untranslated entries
GettextOps.Operations.ListUntranslated.run(locale: "sv")
# => {:ok, [%Expo.Message.Singular{msgid: ["Profile settings"], msgstr: [""]}, ...]}
# List with limit
GettextOps.Operations.ListUntranslated.run(locale: "sv", limit: 5)
# => {:ok, [%Expo.Message.Singular{...}, ...]} (max 5 entries)