diff options
-rw-r--r-- | oslo_config/generator.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/oslo_config/generator.py b/oslo_config/generator.py index 475b244..920270c 100644 --- a/oslo_config/generator.py +++ b/oslo_config/generator.py @@ -37,6 +37,7 @@ import yaml from oslo_config import cfg +from oslo_i18n import _message import stevedore.named # noqa LOG = logging.getLogger(__name__) @@ -684,6 +685,18 @@ def _generate_machine_readable_data(groups, conf): return output_data +def i18n_representer(dumper, data): + """oslo_i18n yaml representer + + Returns a translated to the default locale string for yaml.safe_dump + + :param dumper: a SafeDumper instance passed by yaml.safe_dump + :param data: a oslo_i18n._message.Message instance + """ + serializedData = str(data.translation()) + return dumper.represent_str(serializedData) + + def _output_machine_readable(groups, output_file, conf): """Write a machine readable sample config file @@ -697,6 +710,7 @@ def _output_machine_readable(groups, output_file, conf): """ output_data = _generate_machine_readable_data(groups, conf) if conf.format_ == 'yaml': + yaml.SafeDumper.add_representer(_message.Message, i18n_representer) output_file.write(yaml.safe_dump(output_data, default_flow_style=False)) else: |