Releases: liamnichols/xcstrings-tool
1.0.0
What's Changed
- Breaking: Remove deprecated
LocalizedStringResource
API by @liamnichols in #107 - Make
bundle
a computed property by @liamnichols in #109 - Add
Hashable
conformance to generated type by @liamnichols in #110 - Tool - Support Swift 6 language mode (Strict Concurrency) by @liamnichols in #112
- Fix "'retroactive' attribute does not apply here" error when using Xcode 16 RC by @liamnichols in #115
- Implements static string extension. by @fgroeger in #114
- Fix variable name from string catalog with an acronym in the name by @liamnichols in #116
- i.e URL Strings.xcstrings will generate a variables/labels named
urlStrings
now and notuRLStrings
- i.e URL Strings.xcstrings will generate a variables/labels named
New Contributors
Full Changelog: 0.5.2...1.0.0
SHA for xcstrings-tool.artifactbundle.zip: 5ebd6e4fd6f5ecd63b2bc21e51cbd955ee33786607f5419ada9b9fbabfe44c27
1.0.0-prerelease-2024-09-16
What's Changed
- Breaking: Remove deprecated
LocalizedStringResource
API by @liamnichols in #107 - Make
bundle
a computed property by @liamnichols in #109 - Add
Hashable
conformance to generated type by @liamnichols in #110 - Tool - Support Swift 6 language mode (Strict Concurrency) by @liamnichols in #112
- Fix "'retroactive' attribute does not apply here" error when using Xcode 16 RC by @liamnichols in #115
- Implements static string extension. by @fgroeger in #114
New Contributors
Full Changelog: 0.5.2...1.0.0-prerelease-2024-09-16
SHA for xcstrings-tool.artifactbundle.zip: TBC
1.0.0-prerelease-2024-08-05
What's Changed
- Breaking: Remove deprecated
LocalizedStringResource
API by @liamnichols in #107 - Make
bundle
a computed property by @liamnichols in #109 - Add
Hashable
conformance to generated type by @liamnichols in #110 - Tool: Support Swift 6 language mode (Strict Concurrency) by @liamnichols in #112
Full Changelog: 0.5.2...1.0.0-prerelease-2024-08-05
SHA for xcstrings-tool.artifactbundle.zip: TBC
1.0.0-prerelease-2024-07-29
What's Changed
- Breaking: Remove deprecated
LocalizedStringResource
API by @liamnichols in #107 - Make
bundle
a computed property by @liamnichols in #109 - Add
Hashable
conformance to generated type by @liamnichols in #110
Full Changelog: 0.5.2...1.0.0-prerelease-2024-07-29
SHA for xcstrings-tool.artifactbundle.zip: 073bd75e36bcb5ccd2eb64cd32eb7065498656aa1f272768905e1ef79db32c21
0.5.2
What's Changed
- Document using xcstrings-tool cli directly by @liamnichols in #103
- Pin dependencies to swiftlang GitHub organization (was apple) and remove .git suffix by @liamnichols in #105
- Support prerelease versions of Swift Syntax by @liamnichols in #106
Full Changelog: 0.5.1...0.5.2
SHA for xcstrings-tool.artifactbundle.zip: b00f9461c318dd46eb5e8c0a368f0f77366ef9aa92f672b15ee122210ea61961
0.5.1
What's Changed
- Improve performance when generating source code for large Strings Catalogs by @liamnichols in #96
- Support using generated code in Swift 6 language mode by @liamnichols in #98
- Support using Swift Syntax 600.0.0 by @liamnichols in #98
Internal
- Add Benchmarks by @liamnichols in #94
- Add Pull Request Benchmark workflow by @liamnichols in #95
- Compile snapshots using Swift 6 Language Mode by @liamnichols in #101
- Add tests for Xcode 16 by @liamnichols in #100
Full Changelog: 0.5.0...0.5.1
SHA for xcstrings-tool.artifactbundle.zip: 4394f0c8759fd4ed3b7762fe46db12ec0b68f7a4803d8d6003f0faf6526a2e3e
0.5.0
What's Changed
- Add support for legacy .strings and .stringsdict file formats by @liamnichols in #20
- Add deprecation warnings to generated
LocalizedStringResource
API by @liamnichols in #93
Full Changelog: 0.4.2...0.5.0
SHA for xcstrings-tool.artifactbundle.zip: 1b9934efa72b071b395f8e507ba53d5f0e5a8e5d6bd8cc0cf6e5dfba992d1f2a
0.4.2
What's Changed
- Backtick variable/method names that conflict with Swift keywords by @liamnichols in #91
- Remove deployment target specifications for non-macOS platforms by @liamnichols in #92
Full Changelog: 0.4.1...0.4.2
SHA for xcstrings-tool.artifactbundle.zip: 300943fea84c92a918340a9764b9c72ca696d350d477fc7b04a14bc23d5cfd06
0.4.1
What's Changed
New in 0.4.0, dedicated support for SwiftUI has been added through extensions on Text
and LocalizedStringKey
🎉 APIs support iOS 13/macOS 10.5 and later and allow you to benefit from full SwiftUI support for features such as markdown and dynamic language overrides.
var body: some View {
Form {
TextField(.localizable(.namePlaceholder), text: $name)
Text(localizable: .footnote)
}
.navigationTitle(.localizable(.createAccountTitle))
}
It is now preferred to use the LocalizedStringKey.localizable(_:)
or LocalizedStringResource.localizable(_:)
static methods instead of the LocalizedStringResource.localizable
static property. The static property has been marked as deprecated. A warning will be emitted starting in 0.5.0 and the code will be completely removed in 1.0.0. See below for migrating your code:
- Text(.localizable.foo)
+ Text(.localizable(.foo))
- String(localized: .localizable.bar)
+ String(localizable: .bar)
- .navigationTitle("\(.localizable.title)")
+ .navigationTitle(.localizable(.title))
Pull Requests
0.4.1
- Fix availability of LocalizedStringKey extension (iOS 14+) by @liamnichols in #88
- Update CI by @liamnichols in #89
0.4.0
- Refactor some parts of the generator code by @liamnichols in #73
- Significant refactor of
StringGenerator
by @liamnichols in #76 - Refactoring PlaceholderType usage in StringGenerator by @liamnichols in #77
- Refactor generated code to use less extensions by @liamnichols in #78
- Generate source code with trailing newline by @liamnichols in #79
- Change declaration and make
LocalizedStringResource.init(localizable:)
internal by @liamnichols in #80 - Add backwards compatible initialisers for
Text
andLocalizedStringsKey
by @liamnichols in #82 - Rename Version module to XCStringsToolConstants by @liamnichols in #84
- Use Existential
any
by @liamnichols in #85 - Add Sendable conformance to generated struct by @liamnichols in #86
- soft-deprecate old generated LocalizedStringResource extensions by @liamnichols in #87
Full Changelog: 0.4.0...0.4.1
SHA for xcstrings-tool.artifactbundle.zip: 0dea864c5d351258f5d513e1c749a9a2f1b3eb9b9cab907b4acdd74a02988770
0.4.0
What's Changed
New in 0.4.0, dedicated support for SwiftUI has been added through extensions on Text
and LocalizedStringKey
🎉 APIs support iOS 13/macOS 10.5 and later and allow you to benefit from full SwiftUI support for features such as markdown and dynamic language overrides.
var body: some View {
Form {
TextField(.localizable(.namePlaceholder), $name)
Text(localizable: .footnote)
}
.navigationTitle(.localizable(.createAccountTitle))
}
It is now preferred to use the LocalizedStringKey.localizable(_:)
or LocalizedStringResource.localizable(_:)
static methods instead of the LocalizedStringResource.localizable
static property. The static property has been marked as deprecated. A warning will be emitted starting in 0.5.0 and the code will be completely removed in 1.0.0. See below for migrating your code:
- Text(.localizable.foo)
+ Text(.localizable(.foo))
- String(localized: .localizable.bar)
+ String(localizable: .bar)
- .navigationTitle("\(.localizable.title)")
+ .navigationTitle(.localizable(.title))
Pull Requests
- Refactor some parts of the generator code by @liamnichols in #73
- Significant refactor of
StringGenerator
by @liamnichols in #76 - Refactoring PlaceholderType usage in StringGenerator by @liamnichols in #77
- Refactor generated code to use less extensions by @liamnichols in #78
- Generate source code with trailing newline by @liamnichols in #79
- Change declaration and make
LocalizedStringResource.init(localizable:)
internal by @liamnichols in #80 - Add backwards compatible initialisers for
Text
andLocalizedStringsKey
by @liamnichols in #82 - Rename Version module to XCStringsToolConstants by @liamnichols in #84
- Use Existential
any
by @liamnichols in #85 - Add Sendable conformance to generated struct by @liamnichols in #86
- soft-deprecate old generated LocalizedStringResource extensions by @liamnichols in #87
Full Changelog: 0.3.0...0.4.0
SHA for xcstrings-tool.artifactbundle.zip: 08ed23abb733f5cabc6627be696e497972870ec6cfec8a5c284de310349dd0ed