Added swiftgen step for generating strings that won't be exposed to Weblate but still part of VectorL10n.

This commit is contained in:
Stefan Ceriu
2022-02-28 09:34:37 +02:00
committed by Doug
parent 3c496db894
commit bf8ae6328f
5 changed files with 110 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
// swiftlint:disable all
// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
{% if tables.count > 0 %}
{% set accessModifier %}{% if param.publicAccess %}public{% else %}internal{% endif %}{% endset %}
import Foundation
// swiftlint:disable superfluous_disable_command
// swiftlint:disable file_length
// MARK: - Strings
{% macro parametersBlock types %}{% filter removeNewlines:"leading" %}
{% for type in types %}
_ p{{forloop.counter}}: {{type}}{{ ", " if not forloop.last }}
{% endfor %}
{% endfilter %}{% endmacro %}
{% macro argumentsBlock types %}{% filter removeNewlines:"leading" %}
{% for type in types %}
{% if type == "UnsafeRawPointer" %}
Int(bitPattern: p{{forloop.counter}})
{% else %}
p{{forloop.counter}}
{% endif %}
{{ ", " if not forloop.last }}
{% endfor %}
{% endfilter %}{% endmacro %}
{% macro recursiveBlock table item %}
{% for string in item.strings %}
{% if not param.noComments %}
/// {{string.translation}}
{% endif %}
{% if string.types %}
{{accessModifier}} static func {{string.key|swiftIdentifier:"pretty"|lowerFirstWord|escapeReservedKeywords}}({% call parametersBlock string.types %}) -> String {
return {{className}}.tr("{{table}}", "{{string.key}}", {% call argumentsBlock string.types %})
}
{% else %}
static var {{string.key|swiftIdentifier:"pretty"|lowerFirstWord|escapeReservedKeywords}}: String {
return {{className}}.tr("{{table}}", "{{string.key}}")
}
{% endif %}
{% endfor %}
{% for child in item.children %}
{% call recursiveBlock table child %}
{% endfor %}
{% endmacro %}
// swiftlint:disable function_parameter_count identifier_name line_length type_body_length
{% set className %}{{param.className|default:"L10n"}}{% endset %}
{{accessModifier}} extension {{className}} {
{% if tables.count > 1 %}
{% for table in tables %}
{{accessModifier}} class {{table.name|swiftIdentifier:"pretty"|escapeReservedKeywords}} {
{% filter indent:2 %}{% call recursiveBlock table.name table.levels %}{% endfilter %}
}
{% endfor %}
{% else %}
{% call recursiveBlock tables.first.name tables.first.levels %}
{% endif %}
}
// swiftlint:enable function_parameter_count identifier_name line_length type_body_length
{% else %}
// No string found
{% endif %}

View File

@@ -16,6 +16,13 @@ strings:
params:
className: VectorL10n
publicAccess: true
- inputs: Assets/en.lproj/Untranslated.strings
outputs:
templatePath: Templates/Strings/flat-swift4-vector-untranslated.stencil
output: UntranslatedStrings.swift
params:
className: VectorL10n
publicAccess: true
- inputs: Modules/MatrixKit/Assets/MatrixKitAssets.bundle/en.lproj/MatrixKit.strings
outputs:
templatePath: Templates/Strings/matrixkit-flat-swift4-vector.stencil