Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 16 additions & 14 deletions Config/products/macpacker.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,22 @@
"appcast-seed-path": "Config/appcast.xml",
"changelog": {
"comingNext": {
"en": "Complete archive creation and editing",
"zh-Hans": "完善压缩包的创建与编辑",
"fr": "Création et modification d’archives complètes",
"de": "Vollständiges Erstellen und Bearbeiten von Archiven",
"it": "Creazione e modifica complete degli archivi",
"ja": "アーカイブの作成と編集を完成させる",
"fa": "ساخت و ویرایش کامل آرشیوها",
"pl": "Pełne tworzenie i edycja archiwów",
"pt-BR": "Criação e edição completas de arquivos",
"ru": "Полноценное создание и редактирование архивов",
"uk": "Повноцінне створення та редагування архівів",
"es-MX": "Creación y edición completas de archivos",
"ko": "압축 파일 생성 및 편집 완성",
"nl": "Volledig aanmaken en bewerken van archieven"
"en": "Integrity check and recovery",
"zh-Hans": "完整性检查与恢复",
"fr": "Vérification de l’intégrité et récupération",
"de": "Integritätsprüfung und Wiederherstellung",
"it": "Verifica dell’integrità e recupero",
"ja": "整合性チェックと復旧",
"fa": "بررسی یکپارچگی و بازیابی",
"pl": "Sprawdzanie integralności i odzyskiwanie",
"pt-BR": "Verificação de integridade e recuperação",
"ru": "Проверка целостности и восстановление",
"uk": "Перевірка цілісності та відновлення",
"es-MX": "Verificación de integridad y recuperación",
"ko": "무결성 검사 및 복구",
"nl": "Integriteitscontrole en herstel",
"vi": "Kiểm tra tính toàn vẹn và khôi phục",
"tr": "Bütünlük kontrolü ve kurtarma"
},
"versions": [
{
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,24 @@
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<PreActions>
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Run Script"
scriptText = "&quot;$SRCROOT/scripts/restore-manual-extraction-state.sh&quot; &quot;$SRCROOT/MacPacker/Localizable.xcstrings&quot;&#10;">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "254BB53C2ABBE8430059A1D5"
BuildableName = "MacPackerStore.app"
BlueprintName = "MacPacker Store"
ReferencedContainer = "container:MacPacker.xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
</ActionContent>
</ExecutionAction>
</PreActions>
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
Expand Down
18 changes: 18 additions & 0 deletions MacPacker.xcodeproj/xcshareddata/xcschemes/MacPacker.xcscheme
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,24 @@
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<PreActions>
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Run Script"
scriptText = "&quot;$SRCROOT/scripts/restore-manual-extraction-state.sh&quot; &quot;$SRCROOT/MacPacker/Localizable.xcstrings&quot;&#10;">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "25C0A8A32A78DE5F002C1C2A"
BuildableName = "MacPacker.app"
BlueprintName = "MacPacker"
ReferencedContainer = "container:MacPacker.xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
</ActionContent>
</ExecutionAction>
</PreActions>
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ struct ArchiveContentToolbarView: ToolbarContent {
}

private var moreAppsTitle: AttributedString {
var title = AttributedString(localized: LocalizedStringResource("More Apps", table: "LeanBytes", comment: "Hint to the user that the submenu contains links for more apps that they might like."))
var title = AttributedString(localized: .LeanBytes.moreApps)
title.append(AttributedString(stringLiteral: " "))

// var dot = AttributedString(stringLiteral: "●")
Expand Down Expand Up @@ -270,7 +270,7 @@ struct ArchiveContentToolbarView: ToolbarContent {
Image(nsImage: .menuIcon(named: "AppIcon_FlowMoose"))
}
.labelStyle(.titleAndIcon)
Text("Do more with your voice", tableName: "LeanBytes", comment: "Short description of the FlowMoose app")
Text(.LeanBytes.flowMooseShort)
}

Button {
Expand All @@ -282,7 +282,7 @@ struct ArchiveContentToolbarView: ToolbarContent {
Image(nsImage: .menuIcon(named: "AppIcon_FileFillet"))
}
.labelStyle(.titleAndIcon)
Text("Organize files. Fast.", tableName: "LeanBytes", comment: "Short description of the FileFillet app")
Text(.LeanBytes.fileFilletShort)
}

Button {
Expand All @@ -294,8 +294,7 @@ struct ArchiveContentToolbarView: ToolbarContent {
Image(nsImage: .menuIcon(named: "AppIcon_FrameBeast"))
}
.labelStyle(.titleAndIcon)
// Deliberately untranslated, see WelcomeMoreFromLeanBytesView.
Text("MacPackers app store & social media assets are made with this app", tableName: "LeanBytes", comment: "Short description of the FrameBeast app")
Text(.LeanBytes.frameBeast)
}
} label: {
Label {
Expand Down
10 changes: 4 additions & 6 deletions MacPacker/Features/Welcome/WelcomeMoreFromLeanBytesView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -107,18 +107,16 @@ struct MoreFromLeanBytesProductView: View {
struct WelcomeMoreFromLeanBytesView: View {
var body: some View {
VStack(alignment: .leading, spacing: 8) {
Text("MacPacker is sponsored by my own work at LeanBytes. Supporting the apps below directly supports this open-source tool.", tableName: "LeanBytes", comment: "Explains that supporting the listed LeanBytes apps supports MacPacker")
Text(.LeanBytes.sponsoringInfo)
.foregroundStyle(.secondary)
.font(.callout)
.fixedSize(horizontal: false, vertical: true)

MoreFromLeanBytesProductView(logo: "AppIcon_FlowMoose", title: Constants.otherAppFlowMoose, description: LocalizedStringResource("Voice-2-Text to reduce stress on wrists and arms in the age of AI chats. Offline, local only.", table: "LeanBytes", comment: "Description of the FlowMoose app"), openSource: false, url: Constants.otherAppFlowMooseURL)
MoreFromLeanBytesProductView(logo: "AppIcon_FlowMoose", title: Constants.otherAppFlowMoose, description: LocalizedStringResource.LeanBytes.flowMoose, openSource: false, url: Constants.otherAppFlowMooseURL)

MoreFromLeanBytesProductView(logo: "AppIcon_FileFillet", title: Constants.otherAppFileFillet, description: LocalizedStringResource("Copy or move files to your favorite folders and their sub-folders. No need to open new Finder windows.", table: "LeanBytes", comment: "Description of the FileFillet app"), openSource: false, url: Constants.otherAppFileFilletURL)
MoreFromLeanBytesProductView(logo: "AppIcon_FileFillet", title: Constants.otherAppFileFillet, description: LocalizedStringResource.LeanBytes.fileFillet, openSource: false, url: Constants.otherAppFileFilletURL)

// Deliberately untranslated: FrameBeast is early access and its
// pitch still changes, so it stays out of POEditor for now.
MoreFromLeanBytesProductView(logo: "AppIcon_FrameBeast", title: Constants.otherAppFrameBeast, description: LocalizedStringResource("I made the App Store screenshots with this tool.", table: "LeanBytes", comment: "Description to the FrameBeast app"), openSource: false, url: Constants.otherAppFrameBeastURL, pill: .earlyAccess, videoURL: Constants.otherAppFrameBeastVideoURL)
MoreFromLeanBytesProductView(logo: "AppIcon_FrameBeast", title: Constants.otherAppFrameBeast, description: LocalizedStringResource.LeanBytes.frameBeastShort, openSource: false, url: Constants.otherAppFrameBeastURL, pill: .none, videoURL: Constants.otherAppFrameBeastVideoURL)
}
.padding(.horizontal, 16)
.padding(.top, 16)
Expand Down
Loading
Loading