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 9845c81..5dd1044 100644 --- a/oslo_config/generator.py +++ b/oslo_config/generator.py @@ -52,6 +52,7 @@ except ImportError: import yaml from oslo_config import cfg +from oslo_i18n import _message import stevedore.named # noqa LOG = logging.getLogger(__name__) @@ -723,6 +724,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 @@ -736,6 +749,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: |