├── .gitignore
├── .gitmodules
├── Alpha2.json
├── Assets.xcassets
├── AppIcon.appiconset
│ ├── Contents.json
│ ├── icon_128x128.png
│ ├── icon_128x128@2x.png
│ ├── icon_16x16.png
│ ├── icon_16x16@2x.png
│ ├── icon_256x256.png
│ ├── icon_256x256@2x.png
│ ├── icon_32x32.png
│ ├── icon_32x32@2x.png
│ └── icon_512x512.png
├── Contents.json
├── EncodeCanceled.imageset
│ ├── Contents.json
│ ├── EncodeCanceled.png
│ └── EncodeCanceled@2x.png
├── EncodeComplete.imageset
│ ├── Contents.json
│ ├── EncodeComplete.png
│ └── EncodeComplete@2x.png
├── EncodeWorking.imageset
│ ├── Contents.json
│ ├── EncodeWorking.png
│ └── EncodeWorking@2x.png
├── ToolbarActionTemplate.imageset
│ ├── Contents.json
│ └── ToolbarActionTemplate.png
├── info-over.imageset
│ ├── Contents.json
│ └── info-over.pdf
├── info-pressed.imageset
│ ├── Contents.json
│ └── info-pressed.pdf
├── info.imageset
│ ├── Contents.json
│ └── info.pdf
├── mp4-file.imageset
│ ├── Contents.json
│ ├── file.png
│ └── file@2x.png
├── photo.badge.plus.symbolset
│ ├── Contents.json
│ └── photo.badge.plus.svg
├── photo.stack.symbolset
│ ├── Contents.json
│ └── photo.stack.svg
├── playBackTemplate.imageset
│ ├── Contents.json
│ └── playBackTemplate.pdf
└── stopTemplate.imageset
│ ├── Contents.json
│ └── stopTemplate.pdf
├── Base.lproj
├── AdvancedPrefsViewController.xib
├── ArtworkSelector.xib
├── FileImportController.xib
├── GeneralPrefsViewController.xib
├── MainMenu.xib
├── MediaTagsController.xib
├── MetadataSearch.xib
├── PrefsWindowController.xib
├── Queue.xib
├── QueueItem.xib
├── QueueOptions.xib
├── SBActivityWindow.xib
└── SBChapterSearch.xib
├── CONTRIBUTING.md
├── COPYING
├── Classes
├── ActivityWindowController.swift
├── AdvancedPrefsViewController.swift
├── AppDelegate.swift
├── ArtworkSelector.swift
├── ArtworkSelectorViewItem.swift
├── ArtworkSelectorViewItem.xib
├── AttributedStyles.swift
├── Base.lproj
│ ├── DetailsViewController.xib
│ ├── DocumentWindowController.xib
│ ├── MetadataPrefsViewController.xib
│ ├── OCRPrefsViewController.xib
│ ├── OffsetViewController.xib
│ ├── OutputPrefsViewController.xib
│ ├── PresetEditorViewController.xib
│ ├── PresetPrefsViewController.xib
│ ├── ProgressViewController.xib
│ ├── SaveOptions.xib
│ ├── TokensViewController.xib
│ └── TracksViewController.xib
├── ButtonToolbarItem.swift
├── ChapterSearchController.swift
├── CheckBoxCellView.swift
├── CollectionView.swift
├── ComboBoxCell.swift
├── ComboBoxCellView.swift
├── DetailsViewController.swift
├── Document.swift
├── DocumentToolbarDelegate.swift
├── DocumentWindowController.swift
├── ExpandedTableView.swift
├── FileImportController.swift
├── FilePromiseProvider.swift
├── GeneralPrefsViewController.swift
├── ItemViewController.swift
├── LanguageTransformer.swift
├── Logger.swift
├── MP42FileAdditions.swift
├── MetadataImporters
│ ├── AppleTV.swift
│ ├── AppleTVv3.swift
│ ├── ChapterDB.swift
│ ├── ChapterImporter.swift
│ ├── ChapterResult.swift
│ ├── MetadataHelper.swift
│ ├── MetadataImporter.swift
│ ├── MetadataResult.swift
│ ├── MetadataResultMap.swift
│ ├── Ratings.swift
│ ├── SquaredTVArt.swift
│ ├── TheMovieDB.swift
│ ├── TheMovieDBService.swift
│ ├── TheTVDB.swift
│ ├── TheTVDBService.swift
│ └── iTunesStore.swift
├── MetadataPrefsViewController.swift
├── MetadataPreset.swift
├── MetadataSearchController.swift
├── MetadataSearchViewController.swift
├── MetadataSearchViewController.xib
├── NSWindowAdditions.swift
├── NetworkUtilities.swift
├── OCRManager.swift
├── OCRPrefsViewController.swift
├── OffsetViewController.swift
├── OptionsViewController.swift
├── OutputPrefsViewController.swift
├── PopUpCellView.swift
├── Prefs.swift
├── PrefsWindow.swift
├── PrefsWindowController.swift
├── Preset.swift
├── PresetEditorViewController.swift
├── PresetManager.swift
├── PresetPrefsViewController.swift
├── ProgressViewController.swift
├── PropertyView
│ ├── Base.lproj
│ │ ├── ChapterView.xib
│ │ ├── EmptyView.xib
│ │ ├── MovieView.xib
│ │ ├── MultiSelectView.xib
│ │ ├── SoundView.xib
│ │ └── VideoView.xib
│ ├── ChapterViewController.swift
│ ├── EmptyViewController.swift
│ ├── MediaTagsController.swift
│ ├── MovieViewController.swift
│ ├── MultiSelectViewController.swift
│ ├── PropertyView.swift
│ ├── SoundViewController.swift
│ ├── VideoViewController.swift
│ ├── es-419.lproj
│ │ ├── ChapterView.strings
│ │ ├── MovieView.strings
│ │ ├── MultiSelectView.strings
│ │ ├── SoundView.strings
│ │ └── VideoView.strings
│ ├── fr.lproj
│ │ ├── ChapterView.strings
│ │ ├── MovieView.strings
│ │ ├── MultiSelectView.strings
│ │ ├── SoundView.strings
│ │ └── VideoView.strings
│ ├── it.lproj
│ │ ├── ChapterView.strings
│ │ ├── EmptyView.strings
│ │ ├── MovieView.strings
│ │ ├── MultiSelectView.strings
│ │ ├── SoundView.strings
│ │ └── VideoView.strings
│ └── zh-Hans.lproj
│ │ ├── ChapterView.strings
│ │ ├── MovieView.strings
│ │ ├── MultiSelectView.strings
│ │ ├── SoundView.strings
│ │ └── VideoView.strings
├── Queue.swift
├── QueueAction.swift
├── QueueController.swift
├── QueueItem.swift
├── QueuePreferences.swift
├── QueuePreset.swift
├── QueueScriptCommand.swift
├── QueueToolbarDelegate.swift
├── SaveOptions.swift
├── SectionsTableView.swift
├── Token.swift
├── TokenCellView.swift
├── TokenDelegate.swift
├── TokenFieldCell.swift
├── TokensViewController.swift
├── TracksViewController.swift
├── Utilities.swift
├── ViewController.swift
├── es-419.lproj
│ ├── DocumentWindowController.strings
│ ├── MetadataPrefsViewController.strings
│ ├── OCRPrefsViewController.strings
│ ├── OffsetViewController.strings
│ ├── OutputPrefsViewController.strings
│ ├── PresetEditorViewController.strings
│ ├── PresetPrefsViewController.strings
│ ├── ProgressViewController.strings
│ ├── SaveOptions.strings
│ └── TracksViewController.strings
├── fr.lproj
│ ├── DocumentWindowController.strings
│ ├── MetadataPrefsViewController.strings
│ ├── OCRPrefsViewController.strings
│ ├── OffsetViewController.strings
│ ├── OutputPrefsViewController.strings
│ ├── PresetEditorViewController.strings
│ ├── PresetPrefsViewController.strings
│ ├── ProgressViewController.strings
│ ├── SaveOptions.strings
│ └── TracksViewController.strings
├── it.lproj
│ ├── DocumentWindowController.strings
│ ├── MetadataPrefsViewController.strings
│ ├── OCRPrefsViewController.strings
│ ├── OffsetViewController.strings
│ ├── OutputPrefsViewController.strings
│ ├── PresetEditorViewController.strings
│ ├── PresetPrefsViewController.strings
│ ├── ProgressViewController.strings
│ ├── SaveOptions.strings
│ └── TracksViewController.strings
└── zh-Hans.lproj
│ ├── DocumentWindowController.strings
│ ├── MetadataPrefsViewController.strings
│ ├── OCRPrefsViewController.strings
│ ├── OffsetViewController.strings
│ ├── OutputPrefsViewController.strings
│ ├── PresetEditorViewController.strings
│ ├── PresetPrefsViewController.strings
│ ├── ProgressViewController.strings
│ ├── SaveOptions.strings
│ └── TracksViewController.strings
├── Info.plist
├── LICENSE
├── NEWS.markdown
├── Queue.sdef
├── README.md
├── Ratings.json
├── Storefronts.json
├── Subler.entitlements
├── Subler.xcodeproj
├── project.pbxproj
└── project.xcworkspace
│ └── contents.xcworkspacedata
├── Utilities
├── MP4Dump
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── MainMenu.xib
│ │ └── MyDocument.xib
│ ├── MP4Dump-Info.plist
│ ├── MP4Dump.entitlements
│ ├── MP4Dump.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── MP4Dump_Prefix.pch
│ ├── MyDocument.h
│ ├── MyDocument.m
│ ├── en.lproj
│ │ ├── Credits.rtf
│ │ └── InfoPlist.strings
│ └── main.mm
└── ParseFilename
│ ├── ParseFilename.pl
│ └── lib
│ ├── Debug
│ └── Simple.pm
│ ├── Text
│ └── Roman.pm
│ └── Video
│ └── Filename.pm
├── en.lproj
├── Credits.rtf
└── InfoPlist.strings
├── es-419.lproj
├── AdvancedPrefsViewController.strings
├── ArtworkSelector.strings
├── FileImportController.strings
├── GeneralPrefsViewController.strings
├── InfoPlist.strings
├── Localizable.strings
├── MainMenu.strings
├── MediaTagsController.strings
├── MetadataSearch.strings
├── PrefsWindowController.strings
├── Queue.strings
├── QueueItem.strings
├── QueueOptions.strings
├── SBActivityWindow.strings
└── SBChapterSearch.strings
├── fr.lproj
├── AdvancedPrefsViewController.strings
├── ArtworkSelector.strings
├── FileImportController.strings
├── GeneralPrefsViewController.strings
├── InfoPlist.strings
├── Localizable.strings
├── MainMenu.strings
├── MediaTagsController.strings
├── MetadataSearch.strings
├── PrefsWindowController.strings
├── Queue.strings
├── QueueItem.strings
├── QueueOptions.strings
├── SBActivityWindow.strings
└── SBChapterSearch.strings
├── iTunesStores.json
├── it.lproj
├── AdvancedPrefsViewController.strings
├── ArtworkSelector.strings
├── Credits.rtf
├── FileImportController.strings
├── GeneralPrefsViewController.strings
├── InfoPlist.strings
├── Localizable.strings
├── MainMenu.strings
├── MediaTagsController.strings
├── MetadataSearch.strings
├── PrefsWindowController.strings
├── Queue.strings
├── QueueItem.strings
├── QueueOptions.strings
├── SBActivityWindow.strings
└── SBChapterSearch.strings
└── zh-Hans.lproj
├── AdvancedPrefsViewController.strings
├── ArtworkSelector.strings
├── FileImportController.strings
├── GeneralPrefsViewController.strings
├── InfoPlist.strings
├── Localizable.strings
├── MainMenu.strings
├── MediaTagsController.strings
├── MetadataSearch.strings
├── PrefsWindowController.strings
├── Queue.strings
├── QueueItem.strings
├── QueueOptions.strings
├── SBActivityWindow.strings
└── SBChapterSearch.strings
/.gitignore:
--------------------------------------------------------------------------------
1 | # OS X
2 | .DS_Store
3 |
4 | # Xcode
5 | build/
6 | *.pbxuser
7 | !default.pbxuser
8 | *.mode1v3
9 | !default.mode1v3
10 | *.mode2v3
11 | !default.mode2v3
12 | *.perspectivev3
13 | !default.perspectivev3
14 | xcuserdata
15 | xcshareddata
16 | *.xccheckout
17 | profile
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.xccheckout
22 |
23 | # CocoaPods
24 | Pods
25 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "MP42Foundation"]
2 | path = MP42Foundation
3 | url = https://github.com/SublerApp/MP42Foundation.git
4 |
--------------------------------------------------------------------------------
/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "icon_16x16.png",
5 | "idiom" : "mac",
6 | "scale" : "1x",
7 | "size" : "16x16"
8 | },
9 | {
10 | "filename" : "icon_16x16@2x.png",
11 | "idiom" : "mac",
12 | "scale" : "2x",
13 | "size" : "16x16"
14 | },
15 | {
16 | "filename" : "icon_32x32.png",
17 | "idiom" : "mac",
18 | "scale" : "1x",
19 | "size" : "32x32"
20 | },
21 | {
22 | "filename" : "icon_32x32@2x.png",
23 | "idiom" : "mac",
24 | "scale" : "2x",
25 | "size" : "32x32"
26 | },
27 | {
28 | "filename" : "icon_128x128.png",
29 | "idiom" : "mac",
30 | "scale" : "1x",
31 | "size" : "128x128"
32 | },
33 | {
34 | "filename" : "icon_128x128@2x.png",
35 | "idiom" : "mac",
36 | "scale" : "2x",
37 | "size" : "128x128"
38 | },
39 | {
40 | "filename" : "icon_256x256.png",
41 | "idiom" : "mac",
42 | "scale" : "1x",
43 | "size" : "256x256"
44 | },
45 | {
46 | "filename" : "icon_256x256@2x.png",
47 | "idiom" : "mac",
48 | "scale" : "2x",
49 | "size" : "256x256"
50 | },
51 | {
52 | "filename" : "icon_512x512.png",
53 | "idiom" : "mac",
54 | "scale" : "1x",
55 | "size" : "512x512"
56 | },
57 | {
58 | "idiom" : "mac",
59 | "scale" : "2x",
60 | "size" : "512x512"
61 | }
62 | ],
63 | "info" : {
64 | "author" : "xcode",
65 | "version" : 1
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/Assets.xcassets/AppIcon.appiconset/icon_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/AppIcon.appiconset/icon_128x128.png
--------------------------------------------------------------------------------
/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png
--------------------------------------------------------------------------------
/Assets.xcassets/AppIcon.appiconset/icon_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/AppIcon.appiconset/icon_16x16.png
--------------------------------------------------------------------------------
/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png
--------------------------------------------------------------------------------
/Assets.xcassets/AppIcon.appiconset/icon_256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/AppIcon.appiconset/icon_256x256.png
--------------------------------------------------------------------------------
/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png
--------------------------------------------------------------------------------
/Assets.xcassets/AppIcon.appiconset/icon_32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/AppIcon.appiconset/icon_32x32.png
--------------------------------------------------------------------------------
/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png
--------------------------------------------------------------------------------
/Assets.xcassets/AppIcon.appiconset/icon_512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/AppIcon.appiconset/icon_512x512.png
--------------------------------------------------------------------------------
/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Assets.xcassets/EncodeCanceled.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "EncodeCanceled.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "EncodeCanceled@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/Assets.xcassets/EncodeCanceled.imageset/EncodeCanceled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/EncodeCanceled.imageset/EncodeCanceled.png
--------------------------------------------------------------------------------
/Assets.xcassets/EncodeCanceled.imageset/EncodeCanceled@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/EncodeCanceled.imageset/EncodeCanceled@2x.png
--------------------------------------------------------------------------------
/Assets.xcassets/EncodeComplete.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "EncodeComplete.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "EncodeComplete@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/Assets.xcassets/EncodeComplete.imageset/EncodeComplete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/EncodeComplete.imageset/EncodeComplete.png
--------------------------------------------------------------------------------
/Assets.xcassets/EncodeComplete.imageset/EncodeComplete@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/EncodeComplete.imageset/EncodeComplete@2x.png
--------------------------------------------------------------------------------
/Assets.xcassets/EncodeWorking.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "EncodeWorking.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "EncodeWorking@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/Assets.xcassets/EncodeWorking.imageset/EncodeWorking.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/EncodeWorking.imageset/EncodeWorking.png
--------------------------------------------------------------------------------
/Assets.xcassets/EncodeWorking.imageset/EncodeWorking@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/EncodeWorking.imageset/EncodeWorking@2x.png
--------------------------------------------------------------------------------
/Assets.xcassets/ToolbarActionTemplate.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "ToolbarActionTemplate.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Assets.xcassets/ToolbarActionTemplate.imageset/ToolbarActionTemplate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/ToolbarActionTemplate.imageset/ToolbarActionTemplate.png
--------------------------------------------------------------------------------
/Assets.xcassets/info-over.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "info-over.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Assets.xcassets/info-over.imageset/info-over.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/info-over.imageset/info-over.pdf
--------------------------------------------------------------------------------
/Assets.xcassets/info-pressed.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "info-pressed.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Assets.xcassets/info-pressed.imageset/info-pressed.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/info-pressed.imageset/info-pressed.pdf
--------------------------------------------------------------------------------
/Assets.xcassets/info.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "info.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Assets.xcassets/info.imageset/info.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/info.imageset/info.pdf
--------------------------------------------------------------------------------
/Assets.xcassets/mp4-file.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "file.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "file@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/Assets.xcassets/mp4-file.imageset/file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/mp4-file.imageset/file.png
--------------------------------------------------------------------------------
/Assets.xcassets/mp4-file.imageset/file@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/mp4-file.imageset/file@2x.png
--------------------------------------------------------------------------------
/Assets.xcassets/photo.badge.plus.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "photo.badge.plus.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/Assets.xcassets/photo.stack.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "photo.stack.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/Assets.xcassets/playBackTemplate.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "playBackTemplate.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Assets.xcassets/playBackTemplate.imageset/playBackTemplate.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/playBackTemplate.imageset/playBackTemplate.pdf
--------------------------------------------------------------------------------
/Assets.xcassets/stopTemplate.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "stopTemplate.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Assets.xcassets/stopTemplate.imageset/stopTemplate.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Assets.xcassets/stopTemplate.imageset/stopTemplate.pdf
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## Contributing
2 |
3 | We welcome most contributions. While it is our goal to allow everyone to contribute, contributions not meeting the project's goals or standards may be rejected.
4 |
--------------------------------------------------------------------------------
/Classes/ActivityWindowController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ActivityWindowController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 20/10/2017.
6 | //
7 |
8 | import Cocoa
9 | import MP42Foundation
10 |
11 | final class ActivityWindowController : NSWindowController, MP42Logging {
12 |
13 | @IBOutlet var logView: NSTextView!
14 | let logger: Logger
15 | private let storage: NSTextStorage
16 | private let attributes: [NSAttributedString.Key:Any]
17 |
18 | init(logger: Logger) {
19 | self.logger = logger
20 | self.storage = NSTextStorage()
21 | self.attributes = [NSAttributedString.Key.foregroundColor: NSColor.textColor]
22 | super.init(window: nil)
23 | self.logger.delegate = self
24 | }
25 |
26 | required init?(coder: NSCoder) {
27 | fatalError("init(coder:) has not been implemented")
28 | }
29 |
30 | override public var windowNibName: NSNib.Name? {
31 | return "SBActivityWindow"
32 | }
33 |
34 | override func windowDidLoad() {
35 | super.windowDidLoad()
36 | logView.layoutManager?.replaceTextStorage(storage)
37 | }
38 |
39 | func write(toLog string: String) {
40 | DispatchQueue.main.async {
41 | let attrString = NSAttributedString(string: string, attributes: self.attributes)
42 | self.storage.append(attrString)
43 | }
44 | }
45 |
46 | @IBAction func clearLog(_ sender: Any) {
47 | logger.clear()
48 | storage.deleteCharacters(in: NSMakeRange(0, storage.length))
49 | }
50 |
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/Classes/AdvancedPrefsViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AdvancedPrefsViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 06/02/2018.
6 | //
7 |
8 | import Cocoa
9 |
10 | class AdvancedPrefsViewController: NSViewController {
11 |
12 | init() {
13 | super.init(nibName: nil, bundle: nil)
14 | self.title = NSLocalizedString("Advanced", comment: "")
15 | }
16 |
17 | required init?(coder: NSCoder) {
18 | fatalError("init(coder:) has not been implemented")
19 | }
20 |
21 | override var nibName: NSNib.Name? {
22 | return "AdvancedPrefsViewController"
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/Classes/AttributedStyles.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AttributedStyles.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 01/08/2017.
6 | //
7 |
8 | import Cocoa
9 |
10 | // MARK: - Attributed styles
11 |
12 | private func monospaceAttributes(size: CGFloat, aligment: NSTextAlignment, headIndent: CGFloat = -10.0, firstLineHeadIndent: CGFloat = 0, bold: Bool, color: NSColor = NSColor.secondaryLabelColor) -> [NSAttributedString.Key : Any] {
13 | let ps = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
14 | ps.firstLineHeadIndent = firstLineHeadIndent
15 | ps.headIndent = headIndent
16 | ps.alignment = aligment
17 |
18 | return [NSAttributedString.Key.font: NSFont.monospacedDigitSystemFont(ofSize: size,
19 | weight: bold ? NSFont.Weight.bold : NSFont.Weight.regular),
20 | NSAttributedString.Key.paragraphStyle: ps,
21 | NSAttributedString.Key.foregroundColor: color]
22 | }
23 |
24 | private let detailBoldMonospacedAttr = { () -> [NSAttributedString.Key : Any] in
25 | return monospaceAttributes(size: NSFont.smallSystemFontSize, aligment: NSTextAlignment.right, bold: true)
26 | }()
27 |
28 | private let detailBoldAttr = { () -> [NSAttributedString.Key : Any] in
29 | return monospaceAttributes(size: NSFont.smallSystemFontSize, aligment: NSTextAlignment.left, bold: true)
30 | }()
31 |
32 | private let detailMonospacedAttr = { () -> [NSAttributedString.Key : Any] in
33 | return monospaceAttributes(size: NSFont.smallSystemFontSize, aligment: NSTextAlignment.right, bold: false)
34 | }()
35 |
36 | private let monospacedAttr = { () -> [NSAttributedString.Key : Any] in
37 | return monospaceAttributes(size: NSFont.systemFontSize, aligment: NSTextAlignment.right, bold: false, color: NSColor.controlTextColor)
38 | }()
39 |
40 | private let groupRowAttr = { () -> [NSAttributedString.Key : Any] in
41 | return monospaceAttributes(size: NSFont.systemFontSize, aligment: NSTextAlignment.left, firstLineHeadIndent: 24, bold: true)
42 | }()
43 |
44 | extension String {
45 |
46 | func boldAttributedString() -> NSAttributedString {
47 | return NSAttributedString(string: self, attributes: detailBoldAttr)
48 | }
49 |
50 | func boldMonospacedAttributedString() -> NSAttributedString {
51 | return NSAttributedString(string: self, attributes: detailBoldMonospacedAttr)
52 | }
53 |
54 | func smallMonospacedAttributedString() -> NSAttributedString {
55 | return NSAttributedString(string: self, attributes: detailMonospacedAttr)
56 | }
57 |
58 | func monospacedAttributedString() -> NSAttributedString {
59 | return NSAttributedString(string: self, attributes: monospacedAttr)
60 | }
61 |
62 | func groupAttributedString() -> NSAttributedString {
63 | return NSAttributedString(string: self, attributes: groupRowAttr)
64 | }
65 |
66 | }
67 |
--------------------------------------------------------------------------------
/Classes/Base.lproj/DetailsViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Classes/Base.lproj/DocumentWindowController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Classes/Base.lproj/TokensViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/Classes/CheckBoxCellView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CheckBoxCellView.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 20/10/2017.
6 | //
7 |
8 | import Cocoa
9 |
10 | final class CheckBoxCellView : NSTableCellView, ExpandedTableViewCellActionable {
11 | @IBOutlet var checkboxButton: NSButton!
12 |
13 | func performAction() {
14 | self.checkboxButton.performClick(self)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Classes/ComboBoxCell.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ComboBoxCell.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 20/10/2017.
6 | //
7 |
8 | import Cocoa
9 |
10 | class ComboBoxCell : NSComboBoxCell {
11 |
12 | private var originalBackgroundStyle: NSView.BackgroundStyle = NSView.BackgroundStyle.light
13 |
14 | override var backgroundStyle: NSView.BackgroundStyle {
15 | get {
16 | return super.backgroundStyle
17 | }
18 | set (newBackgroundStyle) {
19 | super.backgroundStyle = newBackgroundStyle
20 | if newBackgroundStyle == NSView.BackgroundStyle.dark {
21 | textColor = NSColor.controlHighlightColor
22 | } else {
23 | textColor = NSColor.controlTextColor
24 | }
25 | }
26 | }
27 |
28 | override func setUpFieldEditorAttributes(_ textObj: NSText) -> NSText {
29 | originalBackgroundStyle = backgroundStyle
30 | backgroundStyle = NSView.BackgroundStyle.light
31 | drawsBackground = true
32 | return super.setUpFieldEditorAttributes(textObj)
33 | }
34 |
35 | override func endEditing(_ textObj: NSText) {
36 | super.endEditing(textObj)
37 | drawsBackground = false
38 | backgroundStyle = originalBackgroundStyle
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/Classes/ComboBoxCellView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ComboBoxCellView.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 20/10/2017.
6 | //
7 |
8 | import Cocoa
9 |
10 | final class ComboBoxCellView : NSTableCellView {
11 | @IBOutlet var comboBox: NSComboBox!
12 | }
13 |
--------------------------------------------------------------------------------
/Classes/DetailsViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DetailsViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 04/02/2018.
6 | //
7 |
8 | import Cocoa
9 |
10 | final class DetailsViewController: NSViewController {
11 |
12 | override var nibName: NSNib.Name? {
13 | return "DetailsViewController"
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Classes/GeneralPrefsViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // GeneralPrefsViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 06/02/2018.
6 | //
7 |
8 | import Cocoa
9 | import MP42Foundation
10 |
11 | class GeneralPrefsViewController: NSViewController {
12 |
13 | init() {
14 | super.init(nibName: nil, bundle: nil)
15 | self.title = NSLocalizedString("General", comment: "")
16 | }
17 |
18 | required init?(coder: NSCoder) {
19 | fatalError("init(coder:) has not been implemented")
20 | }
21 |
22 | override var nibName: NSNib.Name? {
23 | return "GeneralPrefsViewController"
24 | }
25 |
26 | @IBAction func clearRecentSearches(_ sender: Any) {
27 | MetadataSearchController.clearRecentSearches()
28 | }
29 |
30 | @IBAction func deleteCachedMetadata(_ sender: Any) {
31 | MetadataSearchController.deleteCachedMetadata()
32 | }
33 |
34 | @IBAction func updateRatingsCountry(_ sender: Any) {
35 | // Unused
36 | }
37 |
38 | @objc dynamic var ratingsCountries: [String] { return Ratings.shared.countries.map { $0.displayName } }
39 |
40 | @objc dynamic var logFormatOptions: [String] {
41 | return [
42 | "Time Only",
43 | "Date and Time"
44 | ]
45 | }
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/Classes/ItemViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ItemViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 11/11/2017.
6 | //
7 |
8 | import Cocoa
9 |
10 | protocol ItemViewDelegate: AnyObject {
11 | @MainActor func edit(item: QueueItem)
12 | }
13 |
14 | final class ItemViewController : NSViewController {
15 |
16 | @objc dynamic let item: QueueItem
17 |
18 | @objc dynamic let name: String
19 | @objc dynamic let path: String
20 | @objc dynamic var destPath: String
21 |
22 | private var delegate: ItemViewDelegate
23 |
24 | private var statusObserver: NSKeyValueObservation?
25 | private var actionsObserver: NSKeyValueObservation?
26 |
27 | @IBOutlet var editButton: NSButton!
28 | @IBOutlet var spinner: NSProgressIndicator!
29 | @IBOutlet var tableHeight: NSLayoutConstraint!
30 | @IBOutlet var tableView: NSTableView!
31 |
32 | override var nibName: NSNib.Name? {
33 | return "QueueItem"
34 | }
35 |
36 | init(item: QueueItem, delegate: ItemViewDelegate) {
37 | self.item = item
38 | self.name = item.fileURL.lastPathComponent
39 | self.path = item.fileURL.path
40 | self.destPath = item.destURL.path
41 | self.delegate = delegate
42 | super.init(nibName: nil, bundle: nil)
43 | }
44 |
45 | required init?(coder: NSCoder) {
46 | fatalError("init(coder:) has not been implemented")
47 | }
48 |
49 | override func viewDidLoad() {
50 | super.viewDidLoad()
51 |
52 | tableView.deselectAll(self)
53 |
54 | // Observe the item status
55 | statusObserver = item.observe(\.status, options: [.initial, .new]) { [weak self] observed, change in
56 | guard let s = self else { return }
57 | DispatchQueue.main.async {
58 | s.destPath = observed.destURL.path
59 |
60 | if observed.status == .ready || observed.status == .completed {
61 | s.editButton.isEnabled = true
62 | } else {
63 | s.editButton.isEnabled = false
64 | }
65 | }
66 | }
67 |
68 | // Observe the item actions
69 | actionsObserver = item.observe(\.actions, options: [.initial, .new, .old]) { [weak self] observed, change in
70 | guard let s = self, let newCount = change.newValue?.count else { return }
71 | let count = newCount - (change.oldValue?.count ?? 0)
72 | let height = 16.0 * CGFloat(count >= 0 ? count : 1)
73 | DispatchQueue.main.async {
74 | s.tableHeight.constant = height
75 | }
76 | }
77 | }
78 |
79 | @IBAction func edit(_ sender: Any) {
80 | spinner.isHidden = false
81 | delegate.edit(item: item)
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/Classes/LanguageTransformer.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LanguageTransformer.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 11/11/2017.
6 | //
7 |
8 | import Foundation
9 | import MP42Foundation
10 |
11 | class LanguageTransformer : ValueTransformer {
12 |
13 | private let langManager = MP42Languages.defaultManager
14 |
15 | override class func transformedValueClass() -> Swift.AnyClass {
16 | return NSString.self
17 | }
18 |
19 | override class func allowsReverseTransformation() -> Bool {
20 | return true
21 | }
22 |
23 | override func transformedValue(_ value: Any?) -> Any? {
24 | let code = value as! String
25 | let lang = langManager.localizedLang(forExtendedTag: code)
26 | return lang
27 | }
28 |
29 | override func reverseTransformedValue(_ value: Any?) -> Any? {
30 | let lang = value as! String
31 | let code = langManager.extendedTag(forLocalizedLang: lang)
32 | return code
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/Classes/Logger.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Logger.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 20/10/2017.
6 | //
7 |
8 | import Foundation
9 | import MP42Foundation
10 |
11 | final class Logger : NSObject, MP42Logging {
12 |
13 | enum Format: Int {
14 | case timeOnly = 0
15 | case dateAndTime = 1
16 | }
17 |
18 | static let shared = Logger(fileURL: defaultDestinationURL)
19 |
20 | var delegate: MP42Logging?
21 | var format: Format { Format(rawValue: Prefs.logFormat) ?? .timeOnly }
22 |
23 | private let fileURL: URL
24 | private let queue: DispatchQueue
25 |
26 | init(fileURL: URL) {
27 | self.fileURL = fileURL
28 | self.queue = DispatchQueue(label: "org.subler.LogQueue")
29 | }
30 |
31 | private func currentTime() -> String {
32 | var currentTime = time(nil)
33 | if let localTime = localtime(¤tTime) {
34 | let p = localTime.pointee
35 | return String(format: "%02d:%02d:%02d", p.tm_hour, p.tm_min, p.tm_sec)
36 | } else {
37 | return ""
38 | }
39 | }
40 |
41 | private func currentDate() -> String {
42 | var currentTime = time(nil)
43 | if let localTime = localtime(¤tTime) {
44 | let p = localTime.pointee
45 | return String(format: "%04d-%02d-%02d", p.tm_year + 1900, p.tm_mon + 1, p.tm_mday)
46 | } else {
47 | return ""
48 | }
49 | }
50 |
51 | func write(toLog string: String) {
52 | queue.sync {
53 | let prefix: String
54 | switch format {
55 | case .timeOnly:
56 | prefix = currentTime()
57 | case .dateAndTime:
58 | prefix = "\(currentDate()) \(currentTime())"
59 | }
60 | let output = "\(prefix) \(string)\n"
61 |
62 | fileURL.withUnsafeFileSystemRepresentation {
63 | if let file = fopen($0, "a") {
64 | fputs(output, file)
65 | fclose(file)
66 | }
67 | }
68 |
69 | if let delegate = delegate {
70 | delegate.write(toLog: output)
71 | }
72 | }
73 | }
74 |
75 | func writeError(toLog error: Error) {
76 | write(toLog: error.localizedDescription)
77 | }
78 |
79 | func clear() {
80 | try? FileManager.default.removeItem(at: fileURL)
81 | }
82 |
83 | private static let defaultDestinationURL: URL = {
84 | appSupportURL().appendingPathComponent("debugLog.txt")
85 | }()
86 |
87 | private static func appSupportURL() -> URL {
88 | let fileManager = FileManager.default
89 | if let url = fileManager.urls(for: .applicationSupportDirectory, in: .userDomainMask)
90 | .first?.appendingPathComponent("Subler") {
91 |
92 | do {
93 | if fileManager.fileExists(atPath: url.path) == false {
94 | try fileManager.createDirectory(at: url, withIntermediateDirectories: true, attributes: [:])
95 | }
96 | }
97 | catch _ {
98 | fatalError("Couldn't create the app support directory")
99 | }
100 |
101 | return url
102 | }
103 | else {
104 | fatalError("Couldn't find the app support directory")
105 | }
106 | }
107 | }
108 |
--------------------------------------------------------------------------------
/Classes/MetadataImporters/ChapterImporter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ChapterImporter.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 31/07/2017.
6 | //
7 |
8 | import Foundation
9 |
10 | public protocol ChapterService {
11 | func search(title: String, duration: UInt64) -> [ChapterResult]
12 | }
13 |
14 | public enum ChapterSearch {
15 | case movieSeach(service: ChapterService, title: String, duration: UInt64)
16 |
17 | public func search(completionHandler: @escaping ([ChapterResult]) -> Void) -> Runnable {
18 | switch self {
19 | case let .movieSeach(service, title, duration):
20 | return RunnableTask(search: service.search(title: title, duration: duration),
21 | completionHandler: completionHandler)
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Classes/MetadataImporters/ChapterResult.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ChapterResult.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 31/07/2017.
6 | //
7 |
8 | import Foundation
9 |
10 | public struct Chapter {
11 | public let name: String
12 | public let timestamp: UInt64
13 | }
14 |
15 | public struct ChapterResult {
16 | public let title: String
17 | public let duration: UInt64
18 | public let id: UInt64
19 | public let confimations: UInt
20 | public let chapters: [Chapter]
21 | }
22 |
--------------------------------------------------------------------------------
/Classes/MetadataImporters/Ratings.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Ratings.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 04/02/2020.
6 | //
7 |
8 | import Foundation
9 |
10 | final class Ratings {
11 | static let shared = Ratings()
12 | let countries: [Country]
13 |
14 | private init() {
15 | guard let url = Bundle.main.url(forResource: "Ratings", withExtension: "json"),
16 | let data = try? Data(contentsOf: url),
17 | let countries = try? JSONDecoder().decode([Country].self, from: data) else { fatalError() }
18 |
19 | self.countries = countries
20 | }
21 |
22 | func rating(countryCode: String, mediaKind: MediaKind, name: String) -> Rating? {
23 | guard let country = countries.first(where: { $0.displayName == countryCode }) else { return nil }
24 | return country.ratings.first(where: {$0.media.contains(mediaKind.description) && $0.displayName == name})
25 | }
26 |
27 | func rating(storeCode: Int, mediaKind: MediaKind, code: String) -> Rating? {
28 | guard let country = countries.first(where: { $0.storeCode == storeCode }) else { return nil }
29 | return country.ratings.first(where: {$0.media.contains(mediaKind.description) && $0.code == code})
30 | }
31 | }
32 |
33 | struct Country: Decodable {
34 | let displayName: String
35 | let storeCode: Int
36 | let ratings: [Rating]
37 |
38 | enum CodingKeys: String, CodingKey {
39 | case displayName = "country", storeCode, ratings
40 | }
41 | }
42 |
43 | struct Rating: Decodable {
44 | let media: String
45 | let prefix: String
46 | let code: String
47 | let value: String
48 | let displayName: String
49 |
50 | enum CodingKeys: String, CodingKey {
51 | case media, prefix, code = "itunes-code", value = "itunes-value", displayName = "description"
52 | }
53 |
54 | var iTunesCode: String { "\(prefix)|\(code)|\(value)|" }
55 | }
56 |
--------------------------------------------------------------------------------
/Classes/MetadataPreset.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MetadataPreset.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 21/08/2017.
6 | //
7 |
8 | import Foundation
9 | import MP42Foundation
10 |
11 | @objc(SBMetadataPreset) final class MetadataPreset: NSObject, Preset {
12 |
13 | var pathExtension: String {
14 | return "sbpreset2"
15 | }
16 | @objc var title: String
17 | let metadata: MP42Metadata
18 | var replaceArtworks: Bool
19 | var replaceAnnotations: Bool
20 |
21 | let version: Int
22 | var changed: Bool
23 |
24 | convenience init(title: String) {
25 | self.init(title: title, metadata: MP42Metadata(), replaceArtworks: true, replaceAnnotations: true)
26 | }
27 |
28 | init(title: String, metadata: MP42Metadata, replaceArtworks: Bool, replaceAnnotations: Bool) {
29 | self.title = title
30 | self.metadata = metadata.copy() as! MP42Metadata
31 | self.replaceArtworks = replaceArtworks
32 | self.replaceAnnotations = replaceAnnotations
33 | self.changed = true
34 | self.version = 2
35 | }
36 |
37 | // MARK: NSCoding
38 |
39 | func encode(with aCoder: NSCoder) {
40 | aCoder.encode(title, forKey: "title")
41 | aCoder.encode(metadata, forKey: "metadata")
42 | aCoder.encode(version, forKey: "version")
43 | aCoder.encode(replaceArtworks, forKey: "replaceArtworks")
44 | aCoder.encode(replaceAnnotations, forKey: "replaceAnnotations")
45 | }
46 |
47 | required init?(coder aDecoder: NSCoder) {
48 | guard let title = aDecoder.decodeObject(of: NSString.self, forKey: "title") as String?,
49 | let metadata = aDecoder.decodeObject(of: MP42Metadata.self, forKey: "metadata") as MP42Metadata?
50 | else { return nil }
51 |
52 | let version = aDecoder.decodeInteger(forKey: "version")
53 | let replaceArtworks = aDecoder.decodeBool(forKey: "replaceArtworks")
54 | let replaceAnnotations = aDecoder.decodeBool(forKey: "replaceAnnotations")
55 |
56 | self.title = title
57 | self.metadata = metadata
58 | self.replaceArtworks = replaceArtworks
59 | self.replaceAnnotations = replaceAnnotations
60 | self.version = version
61 | self.changed = false
62 | }
63 |
64 | static var supportsSecureCoding: Bool { return true }
65 |
66 | // MARK: NSCopying
67 |
68 | func copy(with zone: NSZone? = nil) -> Any {
69 | return MetadataPreset(title: title, metadata: metadata, replaceArtworks: replaceArtworks, replaceAnnotations: replaceAnnotations)
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Classes/MetadataSearchViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MetadataSearchWindowController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 06/08/2019.
6 | //
7 |
8 | import Cocoa
9 |
10 | protocol MetadataSearchViewControllerDelegate : AnyObject {
11 | func didSelect(metadata: MetadataResult)
12 | }
13 |
14 | class MetadataSearchViewController: ViewController, MetadataSearchControllerDelegate, ArtworkSelectorControllerDelegate {
15 |
16 | private let searchTerms: MetadataSearchTerms
17 |
18 | private lazy var metadataViewController: MetadataSearchController = {
19 | return MetadataSearchController(delegate: self, searchTerms: searchTerms)
20 | }()
21 | private var artworkViewController: ArtworkSelectorController?
22 |
23 | private weak var delegate: MetadataSearchViewControllerDelegate?
24 |
25 | init(delegate: MetadataSearchViewControllerDelegate, searchTerms: MetadataSearchTerms = .none) {
26 | self.delegate = delegate
27 | self.searchTerms = searchTerms
28 | super.init(nibName: nil, bundle: nil)
29 | self.autosave = "MetadataSearchViewControllerAutosaveIdentifier"
30 | }
31 |
32 | required init?(coder: NSCoder) {
33 | fatalError("init(coder:) has not been implemented")
34 | }
35 |
36 | override func viewDidLoad() {
37 | addChild(metadataViewController)
38 | view.addSubview(metadataViewController.view)
39 | }
40 |
41 | override func viewDidAppear() {
42 | self.view.window?.autorecalculatesKeyViewLoop = true
43 | }
44 |
45 | override func addChild(_ childViewController: NSViewController) {
46 | childViewController.view.frame.size = view.frame.size
47 | childViewController.view.autoresizingMask = [NSView.AutoresizingMask.width, NSView.AutoresizingMask.height]
48 | super.addChild(childViewController)
49 | }
50 |
51 | override func transition(from fromViewController: NSViewController, to toViewController: NSViewController, options: NSViewController.TransitionOptions = [], completionHandler completion: (() -> Void)? = nil) {
52 | addChild(toViewController)
53 | super.transition(from: fromViewController, to: toViewController, options: options, completionHandler: completion)
54 | }
55 |
56 | func didSelect(metadata: MetadataResult?) {
57 | if let result = metadata {
58 | if result.remoteArtworks.isEmpty {
59 | delegate?.didSelect(metadata: result)
60 | presentingViewController?.dismiss(self)
61 | } else {
62 | let controller = ArtworkSelectorController(metadata: result, delegate: self)
63 | artworkViewController = controller
64 | transition(from: metadataViewController, to: controller, options: [.slideForward], completionHandler: {
65 | self.removeChild(at: 0)
66 | self.view.window?.makeFirstResponder(self.artworkViewController?.imageBrowser)
67 | })
68 | }
69 | } else {
70 | presentingViewController?.dismiss(self)
71 | }
72 | }
73 |
74 | func didAddArtworks(metadata: MetadataResult) {
75 | delegate?.didSelect(metadata: metadata)
76 | presentingViewController?.dismiss(self)
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/Classes/MetadataSearchViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Classes/NSWindowAdditions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSWindowAdditions.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 15/03/2018.
6 | //
7 |
8 | import Cocoa
9 |
10 | extension NSWindow {
11 | func endEditing() -> Bool {
12 | var success = false
13 | var selectedRange = NSRange()
14 | var responder: AnyObject? = self.firstResponder
15 |
16 | // If we're dealing with the field editor, the real first responder is
17 | // its delegate.
18 | if let parentResponder = responder as? NSTextView, parentResponder.isFieldEditor {
19 | responder = ((parentResponder.delegate as? NSResponder) != nil) ? parentResponder.delegate : nil
20 | if let textField = responder as? NSTextField {
21 | selectedRange = textField.currentEditor()?.selectedRange ?? NSRange()
22 | }
23 | }
24 |
25 | success = self.makeFirstResponder(nil)
26 |
27 | // Return first responder status.
28 | if success, let nextResponder = responder as? NSResponder {
29 | self.makeFirstResponder(nextResponder)
30 | if let textField = nextResponder as? NSTextField {
31 | textField.currentEditor()?.selectedRange = selectedRange
32 | }
33 | }
34 |
35 | return success
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Classes/OCRPrefsViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // OCRPrefsViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 30/05/2019.
6 | //
7 |
8 | import Cocoa
9 |
10 | class OCRTableCellView : NSTableCellView {
11 |
12 | var item: OCRLanguage? {
13 | didSet {
14 | guard let item = item else { return }
15 |
16 | textField?.stringValue = item.displayName
17 |
18 | switch item.status {
19 | case .available:
20 | actionButton.title = NSLocalizedString("Get", comment: "")
21 | case .downloading:
22 | actionButton.title = NSLocalizedString("Cancel Download", comment: "")
23 | case .downloaded:
24 | actionButton.title = NSLocalizedString("Remove", comment: "")
25 | }
26 | }
27 | }
28 |
29 | @IBOutlet var actionButton: NSButton!
30 |
31 | @IBAction func buttonPressed(_ sender: Any) {
32 | guard let item = item else { return }
33 |
34 | switch item.status {
35 | case .available:
36 | OCRManager.shared.download(item: item)
37 | case .downloading:
38 | OCRManager.shared.cancelDownload(item: item)
39 | case .downloaded:
40 | try! OCRManager.shared.removeDownload(item: item)
41 | }
42 | }
43 |
44 | }
45 |
46 | class OCRPrefsViewController: NSViewController, NSTableViewDataSource, NSTableViewDelegate {
47 |
48 | private let manager = OCRManager.shared
49 |
50 | @IBOutlet var tableView: NSTableView!
51 | var observer: Any?
52 |
53 | init() {
54 | super.init(nibName: nil, bundle: nil)
55 | self.title = NSLocalizedString("OCR", comment: "")
56 | }
57 |
58 | required init?(coder: NSCoder) {
59 | fatalError("init(coder:) has not been implemented")
60 | }
61 |
62 | override var nibName: NSNib.Name? {
63 | return "OCRPrefsViewController"
64 | }
65 |
66 | override func viewDidLoad() {
67 | super.viewDidLoad()
68 |
69 | tableView.reloadData()
70 | observer = NotificationCenter.default.addObserver(forName: OCRManager.updateNotification,
71 | object: nil,
72 | queue: OperationQueue.main) { [weak self] notification in
73 | guard let s = self else { return }
74 | s.tableView.reloadData()
75 | }
76 | }
77 |
78 | // MARK: Table View
79 |
80 | func numberOfRows(in tableView: NSTableView) -> Int {
81 | return manager.languages.count
82 | }
83 |
84 | private let languageItemColumn = NSUserInterfaceItemIdentifier(rawValue: "languageItem")
85 |
86 | func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
87 | let item = manager.languages[row]
88 |
89 | if let cell = tableView.makeView(withIdentifier: languageItemColumn, owner: self) as? OCRTableCellView {
90 | cell.item = item
91 | return cell
92 | }
93 |
94 | return nil
95 | }
96 |
97 | }
98 |
--------------------------------------------------------------------------------
/Classes/OffsetViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // OffsetViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 06/02/2018.
6 | //
7 |
8 | import Cocoa
9 | import MP42Foundation
10 |
11 | final class OffsetViewController: NSViewController {
12 |
13 | private let doc: Document
14 | private let track: MP42Track
15 |
16 | @IBOutlet var offsetField: NSTextField!
17 |
18 | init(doc: Document, track: MP42Track) {
19 | self.doc = doc
20 | self.track = track
21 | super.init(nibName: nil, bundle: nil)
22 | }
23 |
24 | required init?(coder: NSCoder) {
25 | fatalError("init(coder:) has not been implemented")
26 | }
27 |
28 | override var nibName: NSNib.Name? {
29 | return "OffsetViewController"
30 | }
31 |
32 | override func viewDidLoad() {
33 | super.viewDidLoad()
34 | offsetField.doubleValue = track.startOffset
35 | }
36 |
37 | @IBAction func setOffset(_ sender: Any) {
38 | if track.startOffset != offsetField.doubleValue {
39 | track.startOffset = offsetField.doubleValue
40 | doc.updateChangeCount(.changeDone)
41 | }
42 | presentingViewController?.dismiss(self)
43 | }
44 |
45 | @IBAction func dismiss(_ sender: Any) {
46 | presentingViewController?.dismiss(self)
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/Classes/PopUpCellView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PopUpCellView.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 20/10/2017.
6 | //
7 |
8 | import Cocoa
9 |
10 | final class PopUpCellView : NSTableCellView, ExpandedTableViewCellActionable {
11 | @IBOutlet var popUpButton: NSPopUpButton!
12 |
13 | func performAction() {
14 | self.popUpButton.performClick(self)
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Classes/PrefsWindow.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PrefsWindow.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 06/02/2018.
6 | //
7 |
8 | import Cocoa
9 |
10 | class PrefsWindow: NSWindow {
11 |
12 | override func validateUserInterfaceItem(_ item: NSValidatedUserInterfaceItem) -> Bool {
13 | if item.action == #selector(NSWindow.toggleToolbarShown(_:)) {
14 | return false
15 | }
16 | return super.validateUserInterfaceItem(item)
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/Classes/Preset.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Preset.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 21/08/2017.
6 | //
7 |
8 | import Foundation
9 |
10 | protocol Preset: NSSecureCoding, NSCopying {
11 | var title: String { get set }
12 | var changed: Bool { get set }
13 | var version: Int { get }
14 |
15 | var pathExtension: String { get }
16 | }
17 |
18 | extension Preset {
19 |
20 | private func appSupportURL() -> URL? {
21 | return FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first?.appendingPathComponent("Subler")
22 | }
23 |
24 | var fileURL: URL {
25 | guard let url = appSupportURL() else { fatalError() }
26 | return url.appendingPathComponent(title).appendingPathExtension(pathExtension)
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Classes/PresetEditorViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PresetEditorViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 29/08/17.
6 | //
7 |
8 | import Cocoa
9 |
10 | final class PresetEditorViewController: MovieViewController {
11 |
12 | let preset: MetadataPreset
13 | @IBOutlet weak var presetTitle: NSTextField!
14 | @IBOutlet weak var replaceArtworks: NSButton!
15 | @IBOutlet weak var replaceAnnotations: NSButton!
16 |
17 | override var nibName: NSNib.Name? {
18 | return "PresetEditorViewController"
19 | }
20 |
21 | init(preset: MetadataPreset) {
22 | self.preset = preset
23 | super.init(mp4: nil, metadata: preset.metadata)
24 | }
25 |
26 | required init?(coder: NSCoder) {
27 | fatalError("init(coder:) has not been implemented")
28 | }
29 |
30 | override func viewDidLoad() {
31 | self.metadata = preset.metadata
32 |
33 | super.viewDidLoad()
34 |
35 | if #available(OSX 10.14, *) {} else {
36 | view.appearance = NSAppearance(named: .aqua)
37 | }
38 | presetTitle.stringValue = preset.title
39 |
40 | preset.changed = true
41 | replaceArtworks.state = preset.replaceArtworks == false ? .on : .off
42 | replaceAnnotations.state = preset.replaceAnnotations == false ? .on : .off
43 | }
44 |
45 | override var zoomLevel: Float {
46 | get {
47 | Prefs.presetArtworkSelectorZoomLevel
48 | }
49 | set (value) {
50 | Prefs.presetArtworkSelectorZoomLevel = value;
51 | }
52 | }
53 |
54 | @IBAction func done(_ sender: Any) {
55 | presentingViewController?.dismiss(self)
56 | }
57 |
58 | @IBAction func setReplaceArtworksState(_ sender: NSButton) {
59 | preset.replaceArtworks = sender.state == .off ? true : false
60 | }
61 |
62 | @IBAction func setReplaceAnnotationsState(_ sender: NSButton) {
63 | preset.replaceAnnotations = sender.state == .off ? true : false
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Classes/ProgressViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ProgressViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 07/02/2018.
6 | //
7 |
8 | import Cocoa
9 |
10 | protocol ProgressViewControllerDelegate : AnyObject {
11 | func cancelSave()
12 | }
13 |
14 | final class ProgressViewController: NSViewController {
15 |
16 | @IBOutlet var cancelButton: NSButton!
17 | @IBOutlet var progressString: NSTextField!
18 | @IBOutlet var progressBar: NSProgressIndicator!
19 |
20 | weak var delegate: ProgressViewControllerDelegate?
21 |
22 | private var isIndeterminate: Bool = true
23 |
24 | override var nibName: NSNib.Name? {
25 | return "ProgressViewController"
26 | }
27 |
28 | override func viewDidLoad() {
29 | super.viewDidLoad()
30 | progressBar.isIndeterminate = true
31 | }
32 |
33 | var progress: Double {
34 | set (progress) {
35 | if isIndeterminate {
36 | isIndeterminate = false
37 | progressBar.isIndeterminate = false
38 | }
39 | progressBar.doubleValue = progress
40 | }
41 | get {
42 | return progressBar.doubleValue
43 | }
44 | }
45 |
46 | var progressTitle: String {
47 | set (progressTitle) {
48 | progressString.stringValue = progressTitle
49 | }
50 | get {
51 | return progressString.stringValue
52 | }
53 | }
54 |
55 | @IBAction func cancel(_ sender: Any) {
56 | delegate?.cancelSave()
57 | cancelButton.isEnabled = false
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/Classes/PropertyView/Base.lproj/EmptyView.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Classes/PropertyView/Base.lproj/MultiSelectView.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/Classes/PropertyView/EmptyViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // EmptyViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 20/10/2017.
6 | //
7 |
8 | import Cocoa
9 |
10 | final class EmptyViewController: PropertyView {
11 |
12 | override var nibName: NSNib.Name? {
13 | return "EmptyView"
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Classes/PropertyView/MultiSelectViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MultiSelectViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 20/10/2017.
6 | //
7 |
8 | import Cocoa
9 |
10 | final class MultiSelectViewController : PropertyView {
11 |
12 | var numberOfTracks: UInt = 0 {
13 | didSet {
14 | reloadUI()
15 | }
16 | }
17 |
18 | @IBOutlet var label: NSTextField!
19 |
20 | override var nibName: NSNib.Name? {
21 | return "MultiSelectView"
22 | }
23 |
24 | init(numberOfTracks: UInt) {
25 | self.numberOfTracks = numberOfTracks
26 | super.init(nibName: nil, bundle: nil)
27 | }
28 |
29 | required init?(coder: NSCoder) {
30 | fatalError("init(coder:) has not been implemented")
31 | }
32 |
33 | override func viewDidLoad() {
34 | super.viewDidLoad()
35 | reloadUI()
36 | }
37 |
38 | func reloadUI() {
39 | if numberOfTracks == 1 {
40 | label.stringValue = NSLocalizedString("1 track selected", comment: "")
41 | } else {
42 | label.stringValue = String.localizedStringWithFormat(NSLocalizedString("%lu tracks selected", comment: ""), numberOfTracks)
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Classes/PropertyView/PropertyView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PropertyView.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 11/11/2019.
6 | //
7 |
8 | import Cocoa
9 |
10 | class PropertyView : NSViewController {
11 | @IBOutlet var tabView: NSTabView?
12 |
13 | func navigate(direction: Int) {
14 | if direction == NSRightArrowFunctionKey {
15 | tabView?.selectNextTabViewItem(self)
16 | } else {
17 | tabView?.selectPreviousTabViewItem(self)
18 | }
19 | }
20 |
21 | func selectTabViewItem(at index: Int) {
22 | tabView?.selectTabViewItem(at: index)
23 | }
24 |
25 | func selectedViewIndex() -> Int {
26 | var index = NSNotFound
27 | if let item = tabView?.selectedTabViewItem {
28 | index = tabView?.indexOfTabViewItem(item) ?? NSNotFound
29 | }
30 | return index
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Classes/PropertyView/es-419.lproj/ChapterView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTabViewItem"; label = "Chapters"; ObjectID = "11"; */
2 | "11.label" = "Capítulos";
3 |
4 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Chapters"; ObjectID = "22"; */
5 | "22.ibExternalAccessibilityDescription" = "Capítulos";
6 |
7 | /* Class = "NSTableColumn"; headerCell.title = "Time"; ObjectID = "24"; */
8 | "24.headerCell.title" = "Tiempo";
9 |
10 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "25"; */
11 | "25.headerCell.title" = "Título";
12 |
13 | /* Class = "NSButton"; ibShadowedToolTip = "Delete selected chapter"; ObjectID = "31"; */
14 | "31.ibShadowedToolTip" = "Eliminar capítulo seleccionado";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Add chapter"; ObjectID = "42"; */
17 | "42.ibShadowedToolTip" = "Agregar capítulo";
18 |
19 | /* Class = "NSMenuItem"; title = "Rename every chapter"; ObjectID = "SOg-Lz-v5L"; */
20 | "SOg-Lz-v5L.title" = "Renombrar capítulos";
21 |
22 |
--------------------------------------------------------------------------------
/Classes/PropertyView/es-419.lproj/MovieView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Save"; ObjectID = "4p7-7v-cUB"; */
2 | "4p7-7v-cUB.title" = "Guardar";
3 |
4 | /* Class = "NSTabViewItem"; label = "Metadata"; ObjectID = "11"; */
5 | "11.label" = "Metadatos";
6 |
7 | /* Class = "NSTabViewItem"; label = "Artwork"; ObjectID = "15"; */
8 | "15.label" = "Ilustración";
9 |
10 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Add metadata item"; ObjectID = "30"; */
11 | "30.ibExternalAccessibilityDescription" = "Agregar propiedad";
12 |
13 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add a new metadata item"; ObjectID = "30"; */
14 | "30.ibShadowedToolTip" = "Agregar propiedad";
15 |
16 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Remove selected item"; ObjectID = "53"; */
17 | "53.ibExternalAccessibilityDescription" = "Eliminar propiedad";
18 |
19 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "53"; */
20 | "53.ibShadowedToolTip" = "Eliminar propiedad";
21 |
22 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "179"; */
23 | "179.ibExternalAccessibilityDescription" = "Preset";
24 |
25 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "aiW-0y-PWH"; */
26 | "aiW-0y-PWH.title" = "Mantener propiedades existentes";
27 |
28 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "doa-uZ-CNr"; */
29 | "doa-uZ-CNr.title" = "Mantener ilustraciones existentes";
30 |
31 | /* Class = "NSTableColumn"; headerCell.title = "Annotation"; ObjectID = "j7q-XE-YXB"; */
32 | "j7q-XE-YXB.headerCell.title" = "Propiedad";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "os0-Yb-exW"; */
35 | "os0-Yb-exW.headerCell.title" = "Valor";
36 |
37 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata"; ObjectID = "qg5-r0-E4V"; */
38 | "qg5-r0-E4V.ibExternalAccessibilityDescription" = "Metadatos";
39 |
40 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "sNX-Z3-AtD"; */
41 | "sNX-Z3-AtD.title" = "Cancelar";
42 |
43 | /* Class = "NSTextFieldCell"; title = "Name:"; ObjectID = "ZqF-j8-NeN"; */
44 | "ZqF-j8-NeN.title" = "Nombre:";
45 |
46 | /* Class = "NSWindow"; title = "Window"; ObjectID = "ZRj-hi-qeJ"; */
47 | "ZRj-hi-qeJ.title" = "Ventana";
48 |
49 |
--------------------------------------------------------------------------------
/Classes/PropertyView/es-419.lproj/MultiSelectView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "%lu tracks selected"; ObjectID = "Mo5-ii-LsO"; */
2 | "Mo5-ii-LsO.title" = "%lu pistas seleccionadas";
3 |
4 |
--------------------------------------------------------------------------------
/Classes/PropertyView/es-419.lproj/SoundView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSMenuItem"; title = "3"; ObjectID = "1xu-y0-sPc"; */
2 | "1xu-y0-sPc.title" = "3";
3 |
4 | /* Class = "NSTextFieldCell"; title = "+ 0 db"; ObjectID = "5af-rM-3Vd"; */
5 | "5af-rM-3Vd.title" = "+ 0 db";
6 |
7 | /* Class = "NSTextFieldCell"; title = "+6 db"; ObjectID = "5ZH-ms-h3O"; */
8 | "5ZH-ms-h3O.title" = "+6 db";
9 |
10 | /* Class = "NSTabViewItem"; label = "Sound Settings"; ObjectID = "6"; */
11 | "6.label" = "Configuración de audio";
12 |
13 | /* Class = "NSTextFieldCell"; title = "Fallback:"; ObjectID = "8KY-0L-cm1"; */
14 | "8KY-0L-cm1.title" = "Alternativa:";
15 |
16 | /* Class = "NSTabViewItem"; label = "Media Characteristics"; ObjectID = "22R-da-Q3B"; */
17 | "22R-da-Q3B.label" = "Características del medio";
18 |
19 | /* Class = "NSTextFieldCell"; title = "Alternate Group:"; ObjectID = "CTV-P7-IaD"; */
20 | "CTV-P7-IaD.title" = "Grupo alternativo:";
21 |
22 | /* Class = "NSTextFieldCell"; title = "Subtitles:"; ObjectID = "dbp-55-tUy"; */
23 | "dbp-55-tUy.title" = "Subtítulos:";
24 |
25 | /* Class = "NSTextFieldCell"; title = "-∞ db"; ObjectID = "dCR-ej-bsH"; */
26 | "dCR-ej-bsH.title" = "-∞ db";
27 |
28 | /* Class = "NSMenuItem"; title = "4"; ObjectID = "e5A-Zf-BwW"; */
29 | "e5A-Zf-BwW.title" = "4";
30 |
31 | /* Class = "NSMenuItem"; title = "5"; ObjectID = "F8Z-GJ-QaV"; */
32 | "F8Z-GJ-QaV.title" = "5";
33 |
34 | /* Class = "NSMenuItem"; title = "1"; ObjectID = "mXc-eW-usD"; */
35 | "mXc-eW-usD.title" = "1";
36 |
37 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "QBa-Jt-TO2"; */
38 | "QBa-Jt-TO2.title" = "Ninguno";
39 |
40 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "Qdb-gu-B3h"; */
41 | "Qdb-gu-B3h.title" = "Ninguno";
42 |
43 | /* Class = "NSMenuItem"; title = "6"; ObjectID = "RPZ-ZF-Pvg"; */
44 | "RPZ-ZF-Pvg.title" = "6";
45 |
46 | /* Class = "NSMenuItem"; title = "2"; ObjectID = "xjR-b6-VG2"; */
47 | "xjR-b6-VG2.title" = "2";
48 |
49 | /* Class = "NSTextFieldCell"; title = "Volume:"; ObjectID = "Z5x-Oq-P8Z"; */
50 | "Z5x-Oq-P8Z.title" = "Volumen:";
51 |
52 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "Zgh-b7-8aY"; */
53 | "Zgh-b7-8aY.title" = "Ninguno";
54 |
55 |
--------------------------------------------------------------------------------
/Classes/PropertyView/fr.lproj/ChapterView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTabViewItem"; label = "Chapters"; ObjectID = "11"; */
2 | "11.label" = "Chapitres";
3 |
4 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Chapters"; ObjectID = "22"; */
5 | "22.ibExternalAccessibilityDescription" = "Chapitres";
6 |
7 | /* Class = "NSTableColumn"; headerCell.title = "Time"; ObjectID = "24"; */
8 | "24.headerCell.title" = "Heure";
9 |
10 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "25"; */
11 | "25.headerCell.title" = "Titre";
12 |
13 | /* Class = "NSButton"; ibShadowedToolTip = "Delete selected chapter"; ObjectID = "31"; */
14 | "31.ibShadowedToolTip" = "Supprimer le chapitre sélectionné";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Add chapter"; ObjectID = "42"; */
17 | "42.ibShadowedToolTip" = "Ajouter un chapitre";
18 |
19 | /* Class = "NSMenuItem"; title = "Rename every chapter"; ObjectID = "SOg-Lz-v5L"; */
20 | "SOg-Lz-v5L.title" = "Renommer chaque chapitre";
21 |
22 |
--------------------------------------------------------------------------------
/Classes/PropertyView/fr.lproj/MovieView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Save"; ObjectID = "4p7-7v-cUB"; */
2 | "4p7-7v-cUB.title" = "Enregistrer";
3 |
4 | /* Class = "NSTabViewItem"; label = "Metadata"; ObjectID = "11"; */
5 | "11.label" = "Métadonnées";
6 |
7 | /* Class = "NSTabViewItem"; label = "Artwork"; ObjectID = "15"; */
8 | "15.label" = "Illustration";
9 |
10 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Add metadata item"; ObjectID = "30"; */
11 | "30.ibExternalAccessibilityDescription" = "Ajouter un élément de métadonnées";
12 |
13 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add a new metadata item"; ObjectID = "30"; */
14 | "30.ibShadowedToolTip" = "Ajouter un nouvel élément de métadonnées";
15 |
16 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Remove selected item"; ObjectID = "53"; */
17 | "53.ibExternalAccessibilityDescription" = "Retirer l'élément sélectionné";
18 |
19 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "53"; */
20 | "53.ibShadowedToolTip" = "Retirer l'élément sélectionné";
21 |
22 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "179"; */
23 | "179.ibExternalAccessibilityDescription" = "Ensembles";
24 |
25 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "aiW-0y-PWH"; */
26 | "aiW-0y-PWH.title" = "Conserver les annotations existantes";
27 |
28 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "doa-uZ-CNr"; */
29 | "doa-uZ-CNr.title" = "Conserver les illustrations existantes";
30 |
31 | /* Class = "NSTableColumn"; headerCell.title = "Annotation"; ObjectID = "j7q-XE-YXB"; */
32 | "j7q-XE-YXB.headerCell.title" = "Annotation";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "os0-Yb-exW"; */
35 | "os0-Yb-exW.headerCell.title" = "Valeur";
36 |
37 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata"; ObjectID = "qg5-r0-E4V"; */
38 | "qg5-r0-E4V.ibExternalAccessibilityDescription" = "Métadonnées";
39 |
40 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "sNX-Z3-AtD"; */
41 | "sNX-Z3-AtD.title" = "Annuler";
42 |
43 | /* Class = "NSTextFieldCell"; title = "Name:"; ObjectID = "ZqF-j8-NeN"; */
44 | "ZqF-j8-NeN.title" = "Nom :";
45 |
46 | /* Class = "NSWindow"; title = "Window"; ObjectID = "ZRj-hi-qeJ"; */
47 | "ZRj-hi-qeJ.title" = "Fenêtre";
48 |
49 |
--------------------------------------------------------------------------------
/Classes/PropertyView/fr.lproj/MultiSelectView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "%lu tracks selected"; ObjectID = "Mo5-ii-LsO"; */
2 | "Mo5-ii-LsO.title" = "%lu pistes sélectionnées";
3 |
4 |
--------------------------------------------------------------------------------
/Classes/PropertyView/fr.lproj/SoundView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSMenuItem"; title = "3"; ObjectID = "1xu-y0-sPc"; */
2 | "1xu-y0-sPc.title" = "3";
3 |
4 | /* Class = "NSTextFieldCell"; title = "+ 0 db"; ObjectID = "5af-rM-3Vd"; */
5 | "5af-rM-3Vd.title" = "+ 0 dB";
6 |
7 | /* Class = "NSTextFieldCell"; title = "+6 db"; ObjectID = "5ZH-ms-h3O"; */
8 | "5ZH-ms-h3O.title" = "+6 dB";
9 |
10 | /* Class = "NSTabViewItem"; label = "Sound Settings"; ObjectID = "6"; */
11 | "6.label" = "Paramètres sonores";
12 |
13 | /* Class = "NSTextFieldCell"; title = "Fallback:"; ObjectID = "8KY-0L-cm1"; */
14 | "8KY-0L-cm1.title" = "Solution de repli :";
15 |
16 | /* Class = "NSTabViewItem"; label = "Media Characteristics"; ObjectID = "22R-da-Q3B"; */
17 | "22R-da-Q3B.label" = "Caractéristiques du média";
18 |
19 | /* Class = "NSTextFieldCell"; title = "Alternate Group:"; ObjectID = "CTV-P7-IaD"; */
20 | "CTV-P7-IaD.title" = "Groupe alternatif :";
21 |
22 | /* Class = "NSTextFieldCell"; title = "Subtitles:"; ObjectID = "dbp-55-tUy"; */
23 | "dbp-55-tUy.title" = "Sous-titres :";
24 |
25 | /* Class = "NSTextFieldCell"; title = "-∞ db"; ObjectID = "dCR-ej-bsH"; */
26 | "dCR-ej-bsH.title" = "-∞ dB";
27 |
28 | /* Class = "NSMenuItem"; title = "4"; ObjectID = "e5A-Zf-BwW"; */
29 | "e5A-Zf-BwW.title" = "4";
30 |
31 | /* Class = "NSMenuItem"; title = "5"; ObjectID = "F8Z-GJ-QaV"; */
32 | "F8Z-GJ-QaV.title" = "5";
33 |
34 | /* Class = "NSMenuItem"; title = "1"; ObjectID = "mXc-eW-usD"; */
35 | "mXc-eW-usD.title" = "1";
36 |
37 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "QBa-Jt-TO2"; */
38 | "QBa-Jt-TO2.title" = "Aucun";
39 |
40 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "Qdb-gu-B3h"; */
41 | "Qdb-gu-B3h.title" = "Aucun";
42 |
43 | /* Class = "NSMenuItem"; title = "6"; ObjectID = "RPZ-ZF-Pvg"; */
44 | "RPZ-ZF-Pvg.title" = "6";
45 |
46 | /* Class = "NSMenuItem"; title = "2"; ObjectID = "xjR-b6-VG2"; */
47 | "xjR-b6-VG2.title" = "2";
48 |
49 | /* Class = "NSTextFieldCell"; title = "Volume:"; ObjectID = "Z5x-Oq-P8Z"; */
50 | "Z5x-Oq-P8Z.title" = "Volume :";
51 |
52 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "Zgh-b7-8aY"; */
53 | "Zgh-b7-8aY.title" = "Aucun";
54 |
55 |
--------------------------------------------------------------------------------
/Classes/PropertyView/it.lproj/ChapterView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTabViewItem"; label = "Chapters"; ObjectID = "11"; */
2 | "11.label" = "Capitoli";
3 |
4 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Chapters"; ObjectID = "22"; */
5 | "22.ibExternalAccessibilityDescription" = "Capitoli";
6 |
7 | /* Class = "NSTableColumn"; headerCell.title = "Time"; ObjectID = "24"; */
8 | "24.headerCell.title" = "Tempo";
9 |
10 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "25"; */
11 | "25.headerCell.title" = "Titolo";
12 |
13 | /* Class = "NSButton"; ibShadowedToolTip = "Delete selected chapter"; ObjectID = "31"; */
14 | "31.ibShadowedToolTip" = "Elimina il capitolo selezionato";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Add chapter"; ObjectID = "42"; */
17 | "42.ibShadowedToolTip" = "Aggiungi capitolo";
18 |
19 | /* Class = "NSMenuItem"; title = "Rename every chapter"; ObjectID = "SOg-Lz-v5L"; */
20 | "SOg-Lz-v5L.title" = "Rinomina ogni capitolo";
21 |
22 |
--------------------------------------------------------------------------------
/Classes/PropertyView/it.lproj/EmptyView.strings:
--------------------------------------------------------------------------------
1 | /* No Localized Strings */
2 |
--------------------------------------------------------------------------------
/Classes/PropertyView/it.lproj/MovieView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Save"; ObjectID = "4p7-7v-cUB"; */
2 | "4p7-7v-cUB.title" = "Salva";
3 |
4 | /* Class = "NSTabViewItem"; label = "Metadata"; ObjectID = "11"; */
5 | "11.label" = "Metadata";
6 |
7 | /* Class = "NSTabViewItem"; label = "Artwork"; ObjectID = "15"; */
8 | "15.label" = "Illustrazione";
9 |
10 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Add metadata item"; ObjectID = "30"; */
11 | "30.ibExternalAccessibilityDescription" = "Aggiungi elemento metadata";
12 |
13 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add a new metadata item"; ObjectID = "30"; */
14 | "30.ibShadowedToolTip" = "Aggiungi un nuovo elemento metadata";
15 |
16 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Remove selected item"; ObjectID = "53"; */
17 | "53.ibExternalAccessibilityDescription" = "Rimuovi l'elemento selezionato";
18 |
19 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "53"; */
20 | "53.ibShadowedToolTip" = "Rimuovi l'elemento selezionato";
21 |
22 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "179"; */
23 | "179.ibExternalAccessibilityDescription" = "Preset";
24 |
25 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "aiW-0y-PWH"; */
26 | "aiW-0y-PWH.title" = "Mantieni le annotazioni esistenti";
27 |
28 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "doa-uZ-CNr"; */
29 | "doa-uZ-CNr.title" = "Mantieni le illustrazioni esistenti";
30 |
31 | /* Class = "NSTableColumn"; headerCell.title = "Annotation"; ObjectID = "j7q-XE-YXB"; */
32 | "j7q-XE-YXB.headerCell.title" = "Annotazione";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "os0-Yb-exW"; */
35 | "os0-Yb-exW.headerCell.title" = "Valore";
36 |
37 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata"; ObjectID = "qg5-r0-E4V"; */
38 | "qg5-r0-E4V.ibExternalAccessibilityDescription" = "Metadata";
39 |
40 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "sNX-Z3-AtD"; */
41 | "sNX-Z3-AtD.title" = "Annulla";
42 |
43 | /* Class = "NSTextFieldCell"; title = "Name:"; ObjectID = "ZqF-j8-NeN"; */
44 | "ZqF-j8-NeN.title" = "Nome:";
45 |
46 |
--------------------------------------------------------------------------------
/Classes/PropertyView/it.lproj/MultiSelectView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "%lu tracks selected"; ObjectID = "Mo5-ii-LsO"; */
2 | "Mo5-ii-LsO.title" = "%lu tracce selezionate";
3 |
4 |
--------------------------------------------------------------------------------
/Classes/PropertyView/it.lproj/SoundView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSMenuItem"; title = "3"; ObjectID = "1xu-y0-sPc"; */
2 | "1xu-y0-sPc.title" = "3";
3 |
4 | /* Class = "NSTextFieldCell"; title = "+ 0 db"; ObjectID = "5af-rM-3Vd"; */
5 | "5af-rM-3Vd.title" = "+ 0 db";
6 |
7 | /* Class = "NSTextFieldCell"; title = "+6 db"; ObjectID = "5ZH-ms-h3O"; */
8 | "5ZH-ms-h3O.title" = "+6 db";
9 |
10 | /* Class = "NSTabViewItem"; label = "Sound Settings"; ObjectID = "6"; */
11 | "6.label" = "Impostazioni audio";
12 |
13 | /* Class = "NSTextFieldCell"; title = "Fallback:"; ObjectID = "8KY-0L-cm1"; */
14 | "8KY-0L-cm1.title" = "Ripiego:";
15 |
16 | /* Class = "NSTabViewItem"; label = "Media Characteristics"; ObjectID = "22R-da-Q3B"; */
17 | "22R-da-Q3B.label" = "Caratteristiche media";
18 |
19 | /* Class = "NSTextFieldCell"; title = "Alternate Group:"; ObjectID = "CTV-P7-IaD"; */
20 | "CTV-P7-IaD.title" = "Gruppo di alternative:";
21 |
22 | /* Class = "NSTextFieldCell"; title = "Subtitles:"; ObjectID = "dbp-55-tUy"; */
23 | "dbp-55-tUy.title" = "Sottotitoli:";
24 |
25 | /* Class = "NSTextFieldCell"; title = "-∞ db"; ObjectID = "dCR-ej-bsH"; */
26 | "dCR-ej-bsH.title" = "-∞ db";
27 |
28 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "QBa-Jt-TO2"; */
29 | "QBa-Jt-TO2.title" = "Nessuno";
30 |
31 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "Qdb-gu-B3h"; */
32 | "Qdb-gu-B3h.title" = "Nessuno";
33 |
34 | /* Class = "NSTextFieldCell"; title = "Volume:"; ObjectID = "Z5x-Oq-P8Z"; */
35 | "Z5x-Oq-P8Z.title" = "Volume:";
36 |
37 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "Zgh-b7-8aY"; */
38 | "Zgh-b7-8aY.title" = "Nessuno";
39 |
40 |
--------------------------------------------------------------------------------
/Classes/PropertyView/zh-Hans.lproj/ChapterView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTabViewItem"; label = "Chapters"; ObjectID = "11"; */
2 | "11.label" = "章节";
3 |
4 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Chapters"; ObjectID = "22"; */
5 | "22.ibExternalAccessibilityDescription" = "章节";
6 |
7 | /* Class = "NSTableColumn"; headerCell.title = "Time"; ObjectID = "24"; */
8 | "24.headerCell.title" = "时间";
9 |
10 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "25"; */
11 | "25.headerCell.title" = "标题";
12 |
13 | /* Class = "NSButton"; ibShadowedToolTip = "Delete selected chapter"; ObjectID = "31"; */
14 | "31.ibShadowedToolTip" = "删除所选章节";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Add chapter"; ObjectID = "42"; */
17 | "42.ibShadowedToolTip" = "添加章节";
18 |
19 | /* Class = "NSMenuItem"; title = "Rename every chapter"; ObjectID = "SOg-Lz-v5L"; */
20 | "SOg-Lz-v5L.title" = "重命名所有章节";
21 |
22 |
--------------------------------------------------------------------------------
/Classes/PropertyView/zh-Hans.lproj/MovieView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Save"; ObjectID = "4p7-7v-cUB"; */
2 | "4p7-7v-cUB.title" = "存储";
3 |
4 | /* Class = "NSTabViewItem"; label = "Metadata"; ObjectID = "11"; */
5 | "11.label" = "元数据";
6 |
7 | /* Class = "NSTabViewItem"; label = "Artwork"; ObjectID = "15"; */
8 | "15.label" = "插图";
9 |
10 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Add metadata item"; ObjectID = "30"; */
11 | "30.ibExternalAccessibilityDescription" = "添加元数据条目";
12 |
13 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add a new metadata item"; ObjectID = "30"; */
14 | "30.ibShadowedToolTip" = "添加一个新的元数据条目";
15 |
16 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Remove selected item"; ObjectID = "53"; */
17 | "53.ibExternalAccessibilityDescription" = "移除所选项";
18 |
19 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "53"; */
20 | "53.ibShadowedToolTip" = "移除所选项";
21 |
22 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "179"; */
23 | "179.ibExternalAccessibilityDescription" = "预设";
24 |
25 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "aiW-0y-PWH"; */
26 | "aiW-0y-PWH.title" = "保留现有注释";
27 |
28 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "doa-uZ-CNr"; */
29 | "doa-uZ-CNr.title" = "保留现有插图";
30 |
31 | /* Class = "NSTableColumn"; headerCell.title = "Annotation"; ObjectID = "j7q-XE-YXB"; */
32 | "j7q-XE-YXB.headerCell.title" = "注释";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "os0-Yb-exW"; */
35 | "os0-Yb-exW.headerCell.title" = "值";
36 |
37 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata"; ObjectID = "qg5-r0-E4V"; */
38 | "qg5-r0-E4V.ibExternalAccessibilityDescription" = "元数据";
39 |
40 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "sNX-Z3-AtD"; */
41 | "sNX-Z3-AtD.title" = "取消";
42 |
43 | /* Class = "NSTextFieldCell"; title = "Name:"; ObjectID = "ZqF-j8-NeN"; */
44 | "ZqF-j8-NeN.title" = "名称:";
45 |
46 | /* Class = "NSWindow"; title = "Window"; ObjectID = "ZRj-hi-qeJ"; */
47 | "ZRj-hi-qeJ.title" = "窗口";
48 |
49 |
--------------------------------------------------------------------------------
/Classes/PropertyView/zh-Hans.lproj/MultiSelectView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "%lu tracks selected"; ObjectID = "Mo5-ii-LsO"; */
2 | "Mo5-ii-LsO.title" = "已选中 %lu 个轨道";
3 |
4 |
--------------------------------------------------------------------------------
/Classes/PropertyView/zh-Hans.lproj/SoundView.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSMenuItem"; title = "3"; ObjectID = "1xu-y0-sPc"; */
2 | "1xu-y0-sPc.title" = "3";
3 |
4 | /* Class = "NSTextFieldCell"; title = "+ 0 db"; ObjectID = "5af-rM-3Vd"; */
5 | "5af-rM-3Vd.title" = "+0 db";
6 |
7 | /* Class = "NSTextFieldCell"; title = "+6 db"; ObjectID = "5ZH-ms-h3O"; */
8 | "5ZH-ms-h3O.title" = "+6 db";
9 |
10 | /* Class = "NSTabViewItem"; label = "Sound Settings"; ObjectID = "6"; */
11 | "6.label" = "声音设置";
12 |
13 | /* Class = "NSTextFieldCell"; title = "Fallback:"; ObjectID = "8KY-0L-cm1"; */
14 | "8KY-0L-cm1.title" = "回退:";
15 |
16 | /* Class = "NSTabViewItem"; label = "Media Characteristics"; ObjectID = "22R-da-Q3B"; */
17 | "22R-da-Q3B.label" = "媒体特征";
18 |
19 | /* Class = "NSTextFieldCell"; title = "Alternate Group:"; ObjectID = "CTV-P7-IaD"; */
20 | "CTV-P7-IaD.title" = "轨道分组:";
21 |
22 | /* Class = "NSTextFieldCell"; title = "Subtitles:"; ObjectID = "dbp-55-tUy"; */
23 | "dbp-55-tUy.title" = "字幕:";
24 |
25 | /* Class = "NSTextFieldCell"; title = "-∞ db"; ObjectID = "dCR-ej-bsH"; */
26 | "dCR-ej-bsH.title" = "-∞ db";
27 |
28 | /* Class = "NSMenuItem"; title = "4"; ObjectID = "e5A-Zf-BwW"; */
29 | "e5A-Zf-BwW.title" = "4";
30 |
31 | /* Class = "NSMenuItem"; title = "5"; ObjectID = "F8Z-GJ-QaV"; */
32 | "F8Z-GJ-QaV.title" = "5";
33 |
34 | /* Class = "NSMenuItem"; title = "1"; ObjectID = "mXc-eW-usD"; */
35 | "mXc-eW-usD.title" = "1";
36 |
37 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "QBa-Jt-TO2"; */
38 | "QBa-Jt-TO2.title" = "无";
39 |
40 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "Qdb-gu-B3h"; */
41 | "Qdb-gu-B3h.title" = "无";
42 |
43 | /* Class = "NSMenuItem"; title = "6"; ObjectID = "RPZ-ZF-Pvg"; */
44 | "RPZ-ZF-Pvg.title" = "6";
45 |
46 | /* Class = "NSMenuItem"; title = "2"; ObjectID = "xjR-b6-VG2"; */
47 | "xjR-b6-VG2.title" = "2";
48 |
49 | /* Class = "NSTextFieldCell"; title = "Volume:"; ObjectID = "Z5x-Oq-P8Z"; */
50 | "Z5x-Oq-P8Z.title" = "音量:";
51 |
52 | /* Class = "NSMenuItem"; title = "None"; ObjectID = "Zgh-b7-8aY"; */
53 | "Zgh-b7-8aY.title" = "无";
54 |
55 |
--------------------------------------------------------------------------------
/Classes/QueuePreset.swift:
--------------------------------------------------------------------------------
1 | //
2 | // QueuePreset.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 21/08/2017.
6 | //
7 |
8 | import Foundation
9 |
10 | final class QueuePreset: Preset {
11 |
12 | var title: String
13 | let options: [String : Any]
14 |
15 | let version: Int
16 | var changed: Bool
17 |
18 | var pathExtension: String {
19 | return "sbqueuepreset"
20 | }
21 |
22 | init(title: String, options: [String : Any]) {
23 | self.title = title
24 | self.options = options
25 | self.changed = true
26 | self.version = 1
27 | }
28 |
29 | // MARK: NSCoding
30 |
31 | static var supportsSecureCoding: Bool {
32 | return true
33 | }
34 |
35 | func encode(with aCoder: NSCoder) {
36 |
37 | }
38 |
39 | required init?(coder aDecoder: NSCoder) {
40 | fatalError()
41 | }
42 |
43 | // MARK: NSCopying
44 |
45 | func copy(with zone: NSZone? = nil) -> Any {
46 | return QueuePreset(title: title, options: options)
47 | }
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/Classes/QueueScriptCommand.swift:
--------------------------------------------------------------------------------
1 | //
2 | // QueueScriptCommand.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 16/03/2018.
6 | //
7 |
8 | import Foundation
9 |
10 | @objc(SBQueueScriptCommand) class QueueScriptCommand: NSScriptCommand {
11 |
12 | @MainActor override func performDefaultImplementation() -> Any? {
13 | guard let args = directParameter as? [URL] else { return nil }
14 | QueueController.shared.insert(contentOf: args, at: QueueController.shared.count)
15 | return nil
16 | }
17 |
18 | }
19 |
20 | @objc(SBQueueStartAndWaitScriptCommand) class QueueStartAndWaitScriptCommand: NSScriptCommand {
21 |
22 | @MainActor override func performDefaultImplementation() -> Any? {
23 | QueueController.shared.add(script: self)
24 | QueueController.shared.start(self)
25 | self.suspendExecution()
26 | return nil
27 | }
28 |
29 | }
30 |
31 | @objc(SBQueueStartScriptCommand) class QueueStartScriptCommand: NSScriptCommand {
32 |
33 | @MainActor override func performDefaultImplementation() -> Any? {
34 | QueueController.shared.start(self)
35 | return nil
36 | }
37 |
38 | }
39 |
40 | @objc(SBQueueStopScriptCommand) class QueueStopScriptCommand: NSScriptCommand {
41 |
42 | @MainActor override func performDefaultImplementation() -> Any? {
43 | QueueController.shared.stop(self)
44 | return nil
45 | }
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/Classes/SaveOptions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SaveOptions.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 08/02/2018.
6 | //
7 |
8 | import Cocoa
9 | import MP42Foundation
10 |
11 | final class SaveOptions: NSViewController {
12 |
13 | @IBOutlet var fileFormat: NSPopUpButton!
14 |
15 | @IBOutlet var _64bit_data: NSButton!
16 | @IBOutlet var _64bit_time: NSButton!
17 | @IBOutlet var optimize: NSButton!
18 |
19 | private weak var doc: Document?
20 | private weak var savePanel: NSSavePanel?
21 |
22 | init(doc: Document, savePanel: NSSavePanel) {
23 | self.doc = doc
24 | self.savePanel = savePanel
25 | super.init(nibName: nil, bundle: nil)
26 | }
27 |
28 | required init?(coder: NSCoder) {
29 | fatalError("init(coder:) has not been implemented")
30 | }
31 |
32 | override var nibName: NSNib.Name? {
33 | return "SaveOptions"
34 | }
35 |
36 | override func viewDidLoad() {
37 | super.viewDidLoad()
38 |
39 | guard let doc = doc else { return }
40 |
41 | let formats = doc.writableTypes(for: .saveAsOperation)
42 | fileFormat.removeAllItems()
43 |
44 | for format in formats {
45 | let name = UTTypeCopyDescription(format as CFString)?.takeRetainedValue() as String? ?? format
46 | fileFormat.addItem(withTitle: name)
47 | }
48 |
49 | fileFormat.selectItem(at: Prefs.defaultSaveFormat)
50 | savePanel?.allowedFileTypes = [Prefs.saveFormat]
51 |
52 | if let filename = doc.mp4.preferredFileName() {
53 | savePanel?.nameFieldStringValue = filename
54 | }
55 |
56 | _64bit_data.state = Prefs.mp464bitOffset ? .on : .off
57 | _64bit_time.state = Prefs.mp464bitTimes ? .on : .off
58 | optimize.state = Prefs.mp4SaveAsOptimize ? .on : .off
59 |
60 | if doc.mp4.dataSize > 3900000000 {
61 | _64bit_data.state = .on
62 | }
63 | }
64 |
65 | func saveUserDefaults()
66 | {
67 | Prefs.defaultSaveFormat = fileFormat.indexOfSelectedItem
68 | Prefs.mp464bitOffset = _64bit_data.state == .on
69 | Prefs.mp464bitTimes = _64bit_time.state == .on
70 | Prefs.mp4SaveAsOptimize = optimize.state == .on
71 | }
72 |
73 | override func viewWillDisappear() {
74 | super.viewWillDisappear()
75 | saveUserDefaults()
76 | }
77 |
78 | @IBAction func setSaveFormat(_ sender: NSPopUpButton) {
79 | var requiredFileType = MP42FileTypeM4V
80 | switch sender.indexOfSelectedItem {
81 | case 0:
82 | requiredFileType = MP42FileTypeM4V
83 | case 1:
84 | requiredFileType = MP42FileTypeMP4
85 | case 2:
86 | requiredFileType = MP42FileTypeM4A
87 | case 3:
88 | requiredFileType = MP42FileTypeM4B
89 | case 4:
90 | requiredFileType = MP42FileTypeM4R
91 | default:
92 | break
93 | }
94 | savePanel?.allowedFileTypes = [requiredFileType]
95 | Prefs.saveFormat = requiredFileType
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/Classes/TokenCellView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TokenCellView.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 06/03/2018.
6 | //
7 |
8 | import Cocoa
9 |
10 | final class TokenCellView : NSTableCellView {
11 | @IBOutlet var tokenView: NSTokenField!
12 | }
13 |
--------------------------------------------------------------------------------
/Classes/TokenFieldCell.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TokenFieldCell.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 20/10/2017.
6 | //
7 |
8 | import Cocoa
9 |
10 | final class TokenFieldCell : NSTokenFieldCell {
11 |
12 | private var originalBackgroundStyle: NSView.BackgroundStyle = NSView.BackgroundStyle.normal
13 |
14 | override var backgroundStyle: NSView.BackgroundStyle {
15 | get {
16 | return super.backgroundStyle
17 | }
18 | set (newBackgroundStyle) {
19 | super.backgroundStyle = newBackgroundStyle
20 | if newBackgroundStyle == NSView.BackgroundStyle.emphasized {
21 | textColor = NSColor.controlHighlightColor
22 | } else {
23 | textColor = NSColor.controlTextColor
24 | }
25 | }
26 | }
27 |
28 | override func setUpFieldEditorAttributes(_ textObj: NSText) -> NSText {
29 | originalBackgroundStyle = backgroundStyle
30 | backgroundStyle = NSView.BackgroundStyle.normal
31 | drawsBackground = true
32 | return super.setUpFieldEditorAttributes(textObj)
33 | }
34 |
35 | override func endEditing(_ textObj: NSText) {
36 | super.endEditing(textObj)
37 | drawsBackground = false
38 | backgroundStyle = originalBackgroundStyle
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/Classes/TokensViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TokensViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 01/12/2017.
6 | //
7 |
8 | import Cocoa
9 | import MP42Foundation
10 |
11 | class TokensViewController: NSViewController, NSTextFieldDelegate {
12 |
13 | @IBOutlet var tokenField: NSTokenField!
14 | let tokens: [Token]
15 | let tokenDelegate: TokenDelegate
16 |
17 | override var nibName: NSNib.Name? {
18 | return "TokensViewController"
19 | }
20 |
21 | init(tokens: [String]) {
22 | self.tokens = tokens.map { Token(text: "{\($0)}") }
23 |
24 | let separators: CharacterSet = CharacterSet(charactersIn: "{}")
25 | self.tokenDelegate = TokenDelegate(displayMenu: false, displayString: { localizedMetadataKeyName($0.text.trimmingCharacters(in: separators)) })
26 |
27 | super.init(nibName: nil, bundle: nil)
28 | }
29 |
30 | required init?(coder: NSCoder) {
31 | fatalError("init(coder:) has not been implemented")
32 | }
33 |
34 | override func viewDidLoad() {
35 | super.viewDidLoad()
36 |
37 | tokenField.delegate = tokenDelegate
38 | tokenField.tokenizingCharacterSet = CharacterSet(charactersIn: "/")
39 | tokenField.objectValue = tokens
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/Classes/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // Subler
4 | //
5 | // Created by Damiano Galassi on 07/08/2019.
6 | //
7 |
8 | import Cocoa
9 |
10 | class ViewController: NSViewController, NSWindowDelegate {
11 |
12 | // MARK: - Interface Builder
13 |
14 | @IBInspectable var autosave: String?
15 |
16 | // MARK: - NSViewController
17 |
18 | override func viewWillAppear() {
19 | super.viewWillAppear()
20 |
21 | guard let window = self.view.window, let saveName = autosave else { return }
22 |
23 | window.delegate = self
24 | window.setFrameUsingName(saveName)
25 | }
26 |
27 | // MARK: - NSWindowDelegate
28 |
29 | func windowDidEndLiveResize(_ notification: Notification) {
30 | guard let saveName = autosave else {
31 | return
32 | }
33 | self.view.window?.saveFrame(usingName: saveName)
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Classes/es-419.lproj/DocumentWindowController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Window"; ObjectID = "s5f-yH-26m"; */
2 | "s5f-yH-26m.title" = "Ventana";
3 |
4 |
--------------------------------------------------------------------------------
/Classes/es-419.lproj/MetadataPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Annotations"; ObjectID = "6um-Rw-luk"; */
2 | "6um-Rw-luk.headerCell.title" = "Propiedad";
3 |
4 | /* Class = "NSButtonCell"; title = "Keep empty annotations"; ObjectID = "7Ek-lI-5Lo"; */
5 | "7Ek-lI-5Lo.title" = "Mantener propiedades vacías";
6 |
7 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "Aj4-bk-6RK"; */
8 | "Aj4-bk-6RK.headerCell.title" = "Valor";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Map the providers' metadata to the MP4 annotations"; ObjectID = "cUW-9F-EvO"; */
11 | "cUW-9F-EvO.title" = "Asigna metadatos de proveedores a las propiedades MP4.";
12 |
13 | /* Class = "CocoaBindingsConnection"; ibShadowedIsNilPlaceholder = "Null"; ObjectID = "dgq-hT-1Vg"; */
14 | "dgq-hT-1Vg.ibShadowedIsNilPlaceholder" = "Nulo";
15 |
16 | /* Class = "NSTableColumn"; headerCell.title = "Type"; ObjectID = "gwa-XG-q0L"; */
17 | "gwa-XG-q0L.headerCell.title" = "Tipo";
18 |
19 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add annotation"; ObjectID = "Jdh-Cj-6ef"; */
20 | "Jdh-Cj-6ef.ibShadowedToolTip" = "Agregar propiedad";
21 |
22 | /* Class = "NSButtonCell"; title = "Restore Defaults"; ObjectID = "nBh-jv-KDG"; */
23 | "nBh-jv-KDG.title" = "Restablecer valores predeterminados";
24 |
25 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata type"; ObjectID = "nXW-oy-rtu"; */
26 | "nXW-oy-rtu.ibExternalAccessibilityDescription" = "Tipo de metadatos";
27 |
28 | /* Class = "NSTextFieldCell"; title = "Available values:"; ObjectID = "OYx-Dd-YIf"; */
29 | "OYx-Dd-YIf.title" = "Valores disponibles:";
30 |
31 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "sd5-qb-K5v"; */
32 | "sd5-qb-K5v.ibShadowedToolTip" = "Eliminar propiedad";
33 |
34 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata map"; ObjectID = "Tid-Rc-Ljr"; */
35 | "Tid-Rc-Ljr.ibExternalAccessibilityDescription" = "Asignación de metadatos";
36 |
37 |
--------------------------------------------------------------------------------
/Classes/es-419.lproj/OCRPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Language data files"; ObjectID = "7YG-8f-1AH"; */
2 | "7YG-8f-1AH.headerCell.title" = "Archivos de datos de idioma";
3 |
4 | /* Class = "NSButtonCell"; title = "Get"; ObjectID = "DIS-cU-NvL"; */
5 | "DIS-cU-NvL.title" = "Obtener";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Language specific OCR data files can improve the optical character recognition results."; ObjectID = "LFI-zD-ohi"; */
8 | "LFI-zD-ohi.title" = "Los archivos de datos OCR específicos del idioma pueden mejorar los resultados de reconocimiento óptico de caracteres.";
9 |
10 |
--------------------------------------------------------------------------------
/Classes/es-419.lproj/OffsetViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Offset:"; ObjectID = "1MN-KJ-v23"; */
2 | "1MN-KJ-v23.title" = "Desplazamiento:";
3 |
4 | /* Class = "NSTextFieldCell"; title = "ms"; ObjectID = "nxC-E2-XnZ"; */
5 | "nxC-E2-XnZ.title" = "ms";
6 |
7 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "Ypd-2w-xig"; */
8 | "Ypd-2w-xig.title" = "Cancelar";
9 |
10 | /* Class = "NSButtonCell"; title = "OK"; ObjectID = "zRv-hv-PCL"; */
11 | "zRv-hv-PCL.title" = "OK";
12 |
13 |
--------------------------------------------------------------------------------
/Classes/es-419.lproj/OutputPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Set the format to create a custom filename in the Save As… panel and in the queue."; ObjectID = "hE3-zH-XFE"; */
2 | "hE3-zH-XFE.title" = "Establece un formato personalizado de nombres para los archivos que vayan a guardarse desde el panel «Guardar como…» o desde la cola.";
3 |
4 | /* Class = "NSButtonCell"; title = "Set filename of TV Shows to:"; ObjectID = "kQC-bu-0by"; */
5 | "kQC-bu-0by.title" = "Formato de nombre de archivo para Programas de TV:";
6 |
7 | /* Class = "NSButtonCell"; title = "Set filename of Movies to:"; ObjectID = "wci-gO-GWT"; */
8 | "wci-gO-GWT.title" = "Formato de nombre de archivo para Películas:";
9 |
10 |
--------------------------------------------------------------------------------
/Classes/es-419.lproj/PresetEditorViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "0nh-AI-EEk"; */
2 | "0nh-AI-EEk.title" = "Mantener propiedades existentes";
3 |
4 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "2ur-nu-rZh"; */
5 | "2ur-nu-rZh.title" = "Mantener ilustraciones existentes";
6 |
7 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Add metadata item"; ObjectID = "30"; */
8 | "30.ibExternalAccessibilityDescription" = "Agregar propiedad";
9 |
10 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add a new metadata item"; ObjectID = "30"; */
11 | "30.ibShadowedToolTip" = "Agregar propiedad";
12 |
13 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Remove selected item"; ObjectID = "53"; */
14 | "53.ibExternalAccessibilityDescription" = "Eliminar propiedad";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "53"; */
17 | "53.ibShadowedToolTip" = "Eliminar propiedad";
18 |
19 | /* Class = "NSButton"; ibShadowedToolTip = "Dismiss"; ObjectID = "87e-za-hJV"; */
20 | "87e-za-hJV.ibShadowedToolTip" = "Cerrar";
21 |
22 | /* Class = "NSWindow"; title = "Window"; ObjectID = "167"; */
23 | "167.title" = "Ventana";
24 |
25 | /* Class = "NSTextFieldCell"; title = "Name:"; ObjectID = "174"; */
26 | "174.title" = "Nombre:";
27 |
28 | /* Class = "NSButtonCell"; title = "Save"; ObjectID = "177"; */
29 | "177.title" = "Guardar";
30 |
31 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "178"; */
32 | "178.title" = "Cancelar";
33 |
34 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "179"; */
35 | "179.ibExternalAccessibilityDescription" = "Preset";
36 |
37 | /* Class = "NSButton"; ibShadowedToolTip = "Add an artwork"; ObjectID = "223"; */
38 | "223.ibShadowedToolTip" = "Agregar ilustración";
39 |
40 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected artwork"; ObjectID = "226"; */
41 | "226.ibShadowedToolTip" = "Eliminar ilustración seleccionada";
42 |
43 | /* Class = "NSSlider"; ibShadowedToolTip = "Change artworks view zoom"; ObjectID = "235"; */
44 | "235.ibShadowedToolTip" = "Cambiar tamaño de visualización de la ilustración";
45 |
46 | /* Class = "NSTextFieldCell"; title = "Title"; ObjectID = "CD8-S4-C35"; */
47 | "CD8-S4-C35.title" = "Título";
48 |
49 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "CHk-xu-U9f"; */
50 | "CHk-xu-U9f.title" = "Mantener ilustraciones existentes";
51 |
52 | /* Class = "NSTableColumn"; headerCell.title = "Annotation"; ObjectID = "j7q-XE-YXB"; */
53 | "j7q-XE-YXB.headerCell.title" = "Propiedad";
54 |
55 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "KxJ-Zr-uiZ"; */
56 | "KxJ-Zr-uiZ.title" = "Mantener propiedades existentes";
57 |
58 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "os0-Yb-exW"; */
59 | "os0-Yb-exW.headerCell.title" = "Valor";
60 |
61 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata"; ObjectID = "qg5-r0-E4V"; */
62 | "qg5-r0-E4V.ibExternalAccessibilityDescription" = "Metadatos";
63 |
64 | /* Class = "NSTextField"; ibExternalAccessibilityDescription = "Preset Title"; ObjectID = "RvM-No-Mwg"; */
65 | "RvM-No-Mwg.ibExternalAccessibilityDescription" = "Título del preset";
66 |
67 | /* Class = "NSButtonCell"; title = "OK"; ObjectID = "xfY-4F-IAd"; */
68 | "xfY-4F-IAd.title" = "Cerrar";
69 |
70 |
--------------------------------------------------------------------------------
/Classes/es-419.lproj/PresetPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButton"; ibShadowedToolTip = "Edit selected set"; ObjectID = "C1d-lu-T7S"; */
2 | "C1d-lu-T7S.ibShadowedToolTip" = "Editar preset";
3 |
4 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected set"; ObjectID = "gBf-6T-hQv"; */
5 | "gBf-6T-hQv.ibShadowedToolTip" = "Eliminar preset";
6 |
7 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "iRF-P7-a3Q"; */
8 | "iRF-P7-a3Q.ibExternalAccessibilityDescription" = "Preset";
9 |
10 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected set"; ObjectID = "SIg-lA-6FA"; */
11 | "SIg-lA-6FA.ibShadowedToolTip" = "Eliminar preset";
12 |
13 | /* Class = "NSButtonCell"; title = "Edit"; ObjectID = "W45-Bf-XCJ"; */
14 | "W45-Bf-XCJ.title" = "Editar";
15 |
16 |
--------------------------------------------------------------------------------
/Classes/es-419.lproj/ProgressViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Saving…"; ObjectID = "1QY-aq-f1i"; */
2 | "1QY-aq-f1i.title" = "Guardando…";
3 |
4 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "13i-3e-aOA"; */
5 | "13i-3e-aOA.title" = "Cancelar";
6 |
7 |
--------------------------------------------------------------------------------
/Classes/es-419.lproj/SaveOptions.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButton"; ibShadowedToolTip = "Note: don't use this option if you are not sure of what it is doing, it's not needed in almost every case.\nEnable 64bit timescale and duration support. Normally, it's only needed if a track will be longer than 10 hours."; ObjectID = "3CX-Vp-T0h"; */
2 | "3CX-Vp-T0h.ibShadowedToolTip" = "Nota: no uses esta opción si no sabes bien lo que estás haciendo, no es necesaria en la mayoría de los casos.\nHabilita la escala de tiempo de 64 bits y el soporte de duración. Normalmente, solo es necesario si una pista dura más de 10 horas.";
3 |
4 | /* Class = "NSButtonCell"; title = "64 bits chunk offset"; ObjectID = "14x-xv-HKI"; */
5 | "14x-xv-HKI.title" = "Desplazamiento de bloque de 64 bits";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Options:"; ObjectID = "BXP-AU-x3T"; */
8 | "BXP-AU-x3T.title" = "Opciones:";
9 |
10 | /* Class = "NSTextFieldCell"; title = "File Format:"; ObjectID = "caN-zU-chS"; */
11 | "caN-zU-chS.title" = "Formato de archivo:";
12 |
13 | /* Class = "NSButtonCell"; title = "64 bits times"; ObjectID = "DCI-a5-K73"; */
14 | "DCI-a5-K73.title" = "Duración de 64 bits";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Needed for mp4 larger than 4GB."; ObjectID = "emp-1S-F7H"; */
17 | "emp-1S-F7H.ibShadowedToolTip" = "Necesario para mp4 de más de 4 GB";
18 |
19 | /* Class = "NSButtonCell"; title = "Optimize"; ObjectID = "OZC-sc-82O"; */
20 | "OZC-sc-82O.title" = "Optimizar";
21 |
22 |
--------------------------------------------------------------------------------
/Classes/es-419.lproj/TracksViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "0dC-Ux-mUt"; */
2 | "0dC-Ux-mUt.headerCell.title" = "Duración";
3 |
4 | /* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "3zj-cH-wWV"; */
5 | "3zj-cH-wWV.headerCell.title" = "Nombre";
6 |
7 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Tracks"; ObjectID = "Bpi-e7-pHx"; */
8 | "Bpi-e7-pHx.ibExternalAccessibilityDescription" = "Pistas";
9 |
10 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Enabled"; ObjectID = "JD5-tO-uQc"; */
11 | "JD5-tO-uQc.ibExternalAccessibilityDescription" = "Activado";
12 |
13 | /* Class = "NSButton"; ibShadowedToolTip = "Enable or disable the track"; ObjectID = "JD5-tO-uQc"; */
14 | "JD5-tO-uQc.ibShadowedToolTip" = "Activar o desactivar pista";
15 |
16 | /* Class = "NSTextFieldCell"; title = "00:00:00"; ObjectID = "LAW-aU-7Ie"; */
17 | "LAW-aU-7Ie.title" = "00:00:00";
18 |
19 | /* Class = "NSTextFieldCell"; title = "Text"; ObjectID = "LgC-JT-Lsx"; */
20 | "LgC-JT-Lsx.title" = "Texto";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Language"; ObjectID = "qGd-Uo-RvP"; */
23 | "qGd-Uo-RvP.headerCell.title" = "Idioma";
24 |
25 | /* Class = "NSTableColumn"; headerCell.title = "Id"; ObjectID = "sB1-FL-VRd"; */
26 | "sB1-FL-VRd.headerCell.title" = "Id";
27 |
28 | /* Class = "NSTableColumn"; headerCell.title = "Format"; ObjectID = "vmh-dT-zIv"; */
29 | "vmh-dT-zIv.headerCell.title" = "Formato";
30 |
31 | /* Class = "NSTableColumn"; headerCell.title = "Enabled"; ObjectID = "Znw-bQ-tsE"; */
32 | "Znw-bQ-tsE.headerCell.title" = "Activado";
33 |
34 |
--------------------------------------------------------------------------------
/Classes/fr.lproj/DocumentWindowController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Window"; ObjectID = "s5f-yH-26m"; */
2 | "s5f-yH-26m.title" = "Fenêtre";
3 |
4 |
--------------------------------------------------------------------------------
/Classes/fr.lproj/MetadataPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Annotations"; ObjectID = "6um-Rw-luk"; */
2 | "6um-Rw-luk.headerCell.title" = "Annotations";
3 |
4 | /* Class = "NSButtonCell"; title = "Keep empty annotations"; ObjectID = "7Ek-lI-5Lo"; */
5 | "7Ek-lI-5Lo.title" = "Conserver les annotations vides";
6 |
7 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "Aj4-bk-6RK"; */
8 | "Aj4-bk-6RK.headerCell.title" = "Valeur";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Map the providers' metadata to the MP4 annotations"; ObjectID = "cUW-9F-EvO"; */
11 | "cUW-9F-EvO.title" = "Faire correspondre les métadonnées du fournisseur aux annotations MP4";
12 |
13 | /* Class = "CocoaBindingsConnection"; ibShadowedIsNilPlaceholder = "Null"; ObjectID = "dgq-hT-1Vg"; */
14 | "dgq-hT-1Vg.ibShadowedIsNilPlaceholder" = "Invalide";
15 |
16 | /* Class = "NSTableColumn"; headerCell.title = "Type"; ObjectID = "gwa-XG-q0L"; */
17 | "gwa-XG-q0L.headerCell.title" = "Type";
18 |
19 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add annotation"; ObjectID = "Jdh-Cj-6ef"; */
20 | "Jdh-Cj-6ef.ibShadowedToolTip" = "Ajouter une annotation";
21 |
22 | /* Class = "NSButtonCell"; title = "Restore Defaults"; ObjectID = "nBh-jv-KDG"; */
23 | "nBh-jv-KDG.title" = "Rétablir les valeurs par défaut";
24 |
25 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata type"; ObjectID = "nXW-oy-rtu"; */
26 | "nXW-oy-rtu.ibExternalAccessibilityDescription" = "Type de métadonnées";
27 |
28 | /* Class = "NSTextFieldCell"; title = "Available values:"; ObjectID = "OYx-Dd-YIf"; */
29 | "OYx-Dd-YIf.title" = "Valeurs disponibles :";
30 |
31 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "sd5-qb-K5v"; */
32 | "sd5-qb-K5v.ibShadowedToolTip" = "Retirer l'élément sélectionné";
33 |
34 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata map"; ObjectID = "Tid-Rc-Ljr"; */
35 | "Tid-Rc-Ljr.ibExternalAccessibilityDescription" = "Correspondance des métadonnées";
36 |
37 |
--------------------------------------------------------------------------------
/Classes/fr.lproj/OCRPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Language data files"; ObjectID = "7YG-8f-1AH"; */
2 | "7YG-8f-1AH.headerCell.title" = "Fichiers de données linguistiques";
3 |
4 | /* Class = "NSButtonCell"; title = "Get"; ObjectID = "DIS-cU-NvL"; */
5 | "DIS-cU-NvL.title" = "Obtenir";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Language specific OCR data files can improve the optical character recognition results."; ObjectID = "LFI-zD-ohi"; */
8 | "LFI-zD-ohi.title" = "Les fichiers de données linguistiques OCR spécifiques peuvent améliorer les résultats de la reconnaissance de caractères.";
9 |
10 |
--------------------------------------------------------------------------------
/Classes/fr.lproj/OffsetViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Offset:"; ObjectID = "1MN-KJ-v23"; */
2 | "1MN-KJ-v23.title" = "Décalage :";
3 |
4 | /* Class = "NSTextFieldCell"; title = "ms"; ObjectID = "nxC-E2-XnZ"; */
5 | "nxC-E2-XnZ.title" = "ms";
6 |
7 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "Ypd-2w-xig"; */
8 | "Ypd-2w-xig.title" = "Annuler";
9 |
10 | /* Class = "NSButtonCell"; title = "OK"; ObjectID = "zRv-hv-PCL"; */
11 | "zRv-hv-PCL.title" = "OK";
12 |
13 |
--------------------------------------------------------------------------------
/Classes/fr.lproj/OutputPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Set the format to create a custom filename in the Save As… panel and in the queue."; ObjectID = "hE3-zH-XFE"; */
2 | "hE3-zH-XFE.title" = "Définir le format pour créer un fichier personnalisé dans le panneau Enregistrer sous... et dans la file d'attente";
3 |
4 | /* Class = "NSButtonCell"; title = "Set filename of TV Shows to:"; ObjectID = "kQC-bu-0by"; */
5 | "kQC-bu-0by.title" = "Définir le nom de fichier des émissions de TV à :";
6 |
7 | /* Class = "NSButtonCell"; title = "Set filename of Movies to:"; ObjectID = "wci-gO-GWT"; */
8 | "wci-gO-GWT.title" = "Définir le nom de fichier des films à :";
9 |
10 |
--------------------------------------------------------------------------------
/Classes/fr.lproj/PresetEditorViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "0nh-AI-EEk"; */
2 | "0nh-AI-EEk.title" = "Conserver les annotations existantes";
3 |
4 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "2ur-nu-rZh"; */
5 | "2ur-nu-rZh.title" = "Conserver les illustrations existantes";
6 |
7 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Add metadata item"; ObjectID = "30"; */
8 | "30.ibExternalAccessibilityDescription" = "Ajouter un élément de métadonnées";
9 |
10 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add a new metadata item"; ObjectID = "30"; */
11 | "30.ibShadowedToolTip" = "Ajouter un nouvel élément de métadonnées";
12 |
13 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Remove selected item"; ObjectID = "53"; */
14 | "53.ibExternalAccessibilityDescription" = "Retirer l'élément sélectionné";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "53"; */
17 | "53.ibShadowedToolTip" = "Retirer l'élément sélectionné";
18 |
19 | /* Class = "NSButton"; ibShadowedToolTip = "Dismiss"; ObjectID = "87e-za-hJV"; */
20 | "87e-za-hJV.ibShadowedToolTip" = "Rejeter";
21 |
22 | /* Class = "NSWindow"; title = "Window"; ObjectID = "167"; */
23 | "167.title" = "Fenêtre";
24 |
25 | /* Class = "NSTextFieldCell"; title = "Name:"; ObjectID = "174"; */
26 | "174.title" = "Nom :";
27 |
28 | /* Class = "NSButtonCell"; title = "Save"; ObjectID = "177"; */
29 | "177.title" = "Enregistrer";
30 |
31 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "178"; */
32 | "178.title" = "Annuler";
33 |
34 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "179"; */
35 | "179.ibExternalAccessibilityDescription" = "Ensembles";
36 |
37 | /* Class = "NSButton"; ibShadowedToolTip = "Add an artwork"; ObjectID = "223"; */
38 | "223.ibShadowedToolTip" = "Ajouter une illustration";
39 |
40 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected artwork"; ObjectID = "226"; */
41 | "226.ibShadowedToolTip" = "Retirer l'illustration sélectionnée";
42 |
43 | /* Class = "NSSlider"; ibShadowedToolTip = "Change artworks view zoom"; ObjectID = "235"; */
44 | "235.ibShadowedToolTip" = "Changer le zoom d'affichage de l'illustration";
45 |
46 | /* Class = "NSTextFieldCell"; title = "Title"; ObjectID = "CD8-S4-C35"; */
47 | "CD8-S4-C35.title" = "Titre";
48 |
49 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "CHk-xu-U9f"; */
50 | "CHk-xu-U9f.title" = "Conserver les illustrations existantes";
51 |
52 | /* Class = "NSTableColumn"; headerCell.title = "Annotation"; ObjectID = "j7q-XE-YXB"; */
53 | "j7q-XE-YXB.headerCell.title" = "Annotation";
54 |
55 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "KxJ-Zr-uiZ"; */
56 | "KxJ-Zr-uiZ.title" = "Conserver les annotations existantes";
57 |
58 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "os0-Yb-exW"; */
59 | "os0-Yb-exW.headerCell.title" = "Valeur";
60 |
61 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata"; ObjectID = "qg5-r0-E4V"; */
62 | "qg5-r0-E4V.ibExternalAccessibilityDescription" = "Métadonnées";
63 |
64 | /* Class = "NSTextField"; ibExternalAccessibilityDescription = "Preset Title"; ObjectID = "RvM-No-Mwg"; */
65 | "RvM-No-Mwg.ibExternalAccessibilityDescription" = "Titre prédéfini";
66 |
67 | /* Class = "NSButtonCell"; title = "OK"; ObjectID = "xfY-4F-IAd"; */
68 | "xfY-4F-IAd.title" = "OK";
69 |
70 |
--------------------------------------------------------------------------------
/Classes/fr.lproj/PresetPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButton"; ibShadowedToolTip = "Edit selected set"; ObjectID = "C1d-lu-T7S"; */
2 | "C1d-lu-T7S.ibShadowedToolTip" = "Modifier l'ensemble sélectionné";
3 |
4 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected set"; ObjectID = "gBf-6T-hQv"; */
5 | "gBf-6T-hQv.ibShadowedToolTip" = "Retirer l'ensemble sélectionné";
6 |
7 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "iRF-P7-a3Q"; */
8 | "iRF-P7-a3Q.ibExternalAccessibilityDescription" = "Ensembles";
9 |
10 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected set"; ObjectID = "SIg-lA-6FA"; */
11 | "SIg-lA-6FA.ibShadowedToolTip" = "Retirer l'ensemble sélectionné";
12 |
13 | /* Class = "NSButtonCell"; title = "Edit"; ObjectID = "W45-Bf-XCJ"; */
14 | "W45-Bf-XCJ.title" = "Modifier";
15 |
16 |
--------------------------------------------------------------------------------
/Classes/fr.lproj/ProgressViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Saving…"; ObjectID = "1QY-aq-f1i"; */
2 | "1QY-aq-f1i.title" = "Enregistrement...";
3 |
4 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "13i-3e-aOA"; */
5 | "13i-3e-aOA.title" = "Annuler";
6 |
7 |
--------------------------------------------------------------------------------
/Classes/fr.lproj/SaveOptions.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButton"; ibShadowedToolTip = "Note: don't use this option if you are not sure of what it is doing, it's not needed in almost every case.\nEnable 64bit timescale and duration support. Normally, it's only needed if a track will be longer than 10 hours."; ObjectID = "3CX-Vp-T0h"; */
2 | "3CX-Vp-T0h.ibShadowedToolTip" = "Note: n'utilisez pas cette option si vous n'êtes pas sûr de ce qu'elle fait, elle n'est pas nécessaire dans la majorité des cas.\nActiver la prise en charge de l'échelle de temps et de durée 64 bits. Normalement, cela n'est nécessaire que si une piste dure plus de 10 heures.";
3 |
4 | /* Class = "NSButtonCell"; title = "64 bits chunk offset"; ObjectID = "14x-xv-HKI"; */
5 | "14x-xv-HKI.title" = "Décalage de bloc de 64 bits";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Options:"; ObjectID = "BXP-AU-x3T"; */
8 | "BXP-AU-x3T.title" = "Options :";
9 |
10 | /* Class = "NSTextFieldCell"; title = "File Format:"; ObjectID = "caN-zU-chS"; */
11 | "caN-zU-chS.title" = "Format de fichier :";
12 |
13 | /* Class = "NSButtonCell"; title = "64 bits times"; ObjectID = "DCI-a5-K73"; */
14 | "DCI-a5-K73.title" = "Durées 64 bits";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Needed for mp4 larger than 4GB."; ObjectID = "emp-1S-F7H"; */
17 | "emp-1S-F7H.ibShadowedToolTip" = "Nécessaire pour mp4 de plus de 4 GO";
18 |
19 | /* Class = "NSButtonCell"; title = "Optimize"; ObjectID = "OZC-sc-82O"; */
20 | "OZC-sc-82O.title" = "Optimiser";
21 |
22 |
--------------------------------------------------------------------------------
/Classes/fr.lproj/TracksViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "0dC-Ux-mUt"; */
2 | "0dC-Ux-mUt.headerCell.title" = "Durée";
3 |
4 | /* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "3zj-cH-wWV"; */
5 | "3zj-cH-wWV.headerCell.title" = "Nom";
6 |
7 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Tracks"; ObjectID = "Bpi-e7-pHx"; */
8 | "Bpi-e7-pHx.ibExternalAccessibilityDescription" = "Pistes";
9 |
10 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Enabled"; ObjectID = "JD5-tO-uQc"; */
11 | "JD5-tO-uQc.ibExternalAccessibilityDescription" = "Activé";
12 |
13 | /* Class = "NSButton"; ibShadowedToolTip = "Enable or disable the track"; ObjectID = "JD5-tO-uQc"; */
14 | "JD5-tO-uQc.ibShadowedToolTip" = "Active ou désactive la piste";
15 |
16 | /* Class = "NSTextFieldCell"; title = "00:00:00"; ObjectID = "LAW-aU-7Ie"; */
17 | "LAW-aU-7Ie.title" = "00:00:00";
18 |
19 | /* Class = "NSTextFieldCell"; title = "Text"; ObjectID = "LgC-JT-Lsx"; */
20 | "LgC-JT-Lsx.title" = "Texte";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Language"; ObjectID = "qGd-Uo-RvP"; */
23 | "qGd-Uo-RvP.headerCell.title" = "Langue";
24 |
25 | /* Class = "NSTableColumn"; headerCell.title = "Id"; ObjectID = "sB1-FL-VRd"; */
26 | "sB1-FL-VRd.headerCell.title" = "Id";
27 |
28 | /* Class = "NSTableColumn"; headerCell.title = "Format"; ObjectID = "vmh-dT-zIv"; */
29 | "vmh-dT-zIv.headerCell.title" = "Format";
30 |
31 | /* Class = "NSTableColumn"; headerCell.title = "Enabled"; ObjectID = "Znw-bQ-tsE"; */
32 | "Znw-bQ-tsE.headerCell.title" = "Activé";
33 |
34 |
--------------------------------------------------------------------------------
/Classes/it.lproj/DocumentWindowController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Window"; ObjectID = "s5f-yH-26m"; */
2 | "s5f-yH-26m.title" = "Finestra";
3 |
4 |
--------------------------------------------------------------------------------
/Classes/it.lproj/MetadataPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Annotations"; ObjectID = "6um-Rw-luk"; */
2 | "6um-Rw-luk.headerCell.title" = "Annotazioni";
3 |
4 | /* Class = "NSButtonCell"; title = "Keep empty annotations"; ObjectID = "7Ek-lI-5Lo"; */
5 | "7Ek-lI-5Lo.title" = "Mantieni le annotazioni vuote";
6 |
7 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "Aj4-bk-6RK"; */
8 | "Aj4-bk-6RK.headerCell.title" = "Valore";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Map the providers' metadata to the MP4 annotations"; ObjectID = "cUW-9F-EvO"; */
11 | "cUW-9F-EvO.title" = "Associa i metadati dei fornitori alle annotazioni MP4";
12 |
13 | /* Class = "NSTableColumn"; headerCell.title = "Type"; ObjectID = "gwa-XG-q0L"; */
14 | "gwa-XG-q0L.headerCell.title" = "Tipologia";
15 |
16 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add annotation"; ObjectID = "Jdh-Cj-6ef"; */
17 | "Jdh-Cj-6ef.ibShadowedToolTip" = "Aggiungi annotazione";
18 |
19 | /* Class = "NSButtonCell"; title = "Restore Defaults"; ObjectID = "nBh-jv-KDG"; */
20 | "nBh-jv-KDG.title" = "Ripristina default";
21 |
22 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata type"; ObjectID = "nXW-oy-rtu"; */
23 | "nXW-oy-rtu.ibExternalAccessibilityDescription" = "Tipo metadata";
24 |
25 | /* Class = "NSTextFieldCell"; title = "Available values:"; ObjectID = "OYx-Dd-YIf"; */
26 | "OYx-Dd-YIf.title" = "Valori disponibili:";
27 |
28 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "sd5-qb-K5v"; */
29 | "sd5-qb-K5v.ibShadowedToolTip" = "Rimuovi l'elemento selezionato";
30 |
31 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata map"; ObjectID = "Tid-Rc-Ljr"; */
32 | "Tid-Rc-Ljr.ibExternalAccessibilityDescription" = "Mappa metadata";
33 |
34 |
--------------------------------------------------------------------------------
/Classes/it.lproj/OCRPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Language data files"; ObjectID = "7YG-8f-1AH"; */
2 | "7YG-8f-1AH.headerCell.title" = "File dati delle lingue";
3 |
4 | /* Class = "NSButtonCell"; title = "Get"; ObjectID = "DIS-cU-NvL"; */
5 | "DIS-cU-NvL.title" = "Ottieni";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Language specific OCR data files can improve the optical character recognition results."; ObjectID = "LFI-zD-ohi"; */
8 | "LFI-zD-ohi.title" = "I file dati OCR per una specifica lingua possono migliorare il risultato del riconoscimento ottico dei caratteri.";
9 |
10 |
--------------------------------------------------------------------------------
/Classes/it.lproj/OffsetViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Offset:"; ObjectID = "1MN-KJ-v23"; */
2 | "1MN-KJ-v23.title" = "Compensazione:";
3 |
4 | /* Class = "NSTextFieldCell"; title = "ms"; ObjectID = "nxC-E2-XnZ"; */
5 | "nxC-E2-XnZ.title" = "ms";
6 |
7 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "Ypd-2w-xig"; */
8 | "Ypd-2w-xig.title" = "Annulla";
9 |
10 | /* Class = "NSButtonCell"; title = "OK"; ObjectID = "zRv-hv-PCL"; */
11 | "zRv-hv-PCL.title" = "OK";
12 |
13 |
--------------------------------------------------------------------------------
/Classes/it.lproj/OutputPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Set the format to create a custom filename in the Save As… panel and in the queue."; ObjectID = "hE3-zH-XFE"; */
2 | "hE3-zH-XFE.title" = "Imposta il formato per creare un nome del file personalizzato nel pannello \\\"Salva col nome…\\\" and nella coda.";
3 |
4 | /* Class = "NSButtonCell"; title = "Set filename of TV Shows to:"; ObjectID = "kQC-bu-0by"; */
5 | "kQC-bu-0by.title" = "Imposta il nome del file delle Serie TV a:";
6 |
7 | /* Class = "NSButtonCell"; title = "Set filename of Movies to:"; ObjectID = "wci-gO-GWT"; */
8 | "wci-gO-GWT.title" = "Imposta il nome del file dei Film a:";
9 |
10 |
--------------------------------------------------------------------------------
/Classes/it.lproj/PresetEditorViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "0nh-AI-EEk"; */
2 | "0nh-AI-EEk.title" = "Mantieni le annotazioni esistenti";
3 |
4 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "2ur-nu-rZh"; */
5 | "2ur-nu-rZh.title" = "Mantieni le illustrazioni esistenti";
6 |
7 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Add metadata item"; ObjectID = "30"; */
8 | "30.ibExternalAccessibilityDescription" = "Aggiungi elemento metadata";
9 |
10 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add a new metadata item"; ObjectID = "30"; */
11 | "30.ibShadowedToolTip" = "Aggiungi un nuovo elemento metadata";
12 |
13 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Remove selected item"; ObjectID = "53"; */
14 | "53.ibExternalAccessibilityDescription" = "Rimuovi l'elemento selezionato";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "53"; */
17 | "53.ibShadowedToolTip" = "Rimuovi l'elemento selezionato";
18 |
19 | /* Class = "NSButton"; ibShadowedToolTip = "Dismiss"; ObjectID = "87e-za-hJV"; */
20 | "87e-za-hJV.ibShadowedToolTip" = "Chiudi";
21 |
22 | /* Class = "NSTextFieldCell"; title = "Name:"; ObjectID = "174"; */
23 | "174.title" = "Nome:";
24 |
25 | /* Class = "NSButtonCell"; title = "Save"; ObjectID = "177"; */
26 | "177.title" = "Salva";
27 |
28 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "178"; */
29 | "178.title" = "Annulla";
30 |
31 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "179"; */
32 | "179.ibExternalAccessibilityDescription" = "Preset";
33 |
34 | /* Class = "NSButton"; ibShadowedToolTip = "Add an artwork"; ObjectID = "223"; */
35 | "223.ibShadowedToolTip" = "Aggiungi un'illustrazione";
36 |
37 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected artwork"; ObjectID = "226"; */
38 | "226.ibShadowedToolTip" = "Rimuovi l'illustrazione selezionata";
39 |
40 | /* Class = "NSSlider"; ibShadowedToolTip = "Change artworks view zoom"; ObjectID = "235"; */
41 | "235.ibShadowedToolTip" = "Cambia il livello di zoom della vista delle illustrazioni";
42 |
43 | /* Class = "NSTextFieldCell"; title = "Title"; ObjectID = "CD8-S4-C35"; */
44 | "CD8-S4-C35.title" = "Titolo";
45 |
46 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "CHk-xu-U9f"; */
47 | "CHk-xu-U9f.title" = "Mantieni le illustrazioni esistenti";
48 |
49 | /* Class = "NSTableColumn"; headerCell.title = "Annotation"; ObjectID = "j7q-XE-YXB"; */
50 | "j7q-XE-YXB.headerCell.title" = "Annotazione";
51 |
52 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "KxJ-Zr-uiZ"; */
53 | "KxJ-Zr-uiZ.title" = "Mantieni le annotazioni esistenti";
54 |
55 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "os0-Yb-exW"; */
56 | "os0-Yb-exW.headerCell.title" = "Valore";
57 |
58 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata"; ObjectID = "qg5-r0-E4V"; */
59 | "qg5-r0-E4V.ibExternalAccessibilityDescription" = "Metadata";
60 |
61 | /* Class = "NSTextField"; ibExternalAccessibilityDescription = "Preset Title"; ObjectID = "RvM-No-Mwg"; */
62 | "RvM-No-Mwg.ibExternalAccessibilityDescription" = "Titolo Preset";
63 |
64 | /* Class = "NSButtonCell"; title = "OK"; ObjectID = "xfY-4F-IAd"; */
65 | "xfY-4F-IAd.title" = "OK";
66 |
67 |
--------------------------------------------------------------------------------
/Classes/it.lproj/PresetPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButton"; ibShadowedToolTip = "Edit selected set"; ObjectID = "C1d-lu-T7S"; */
2 | "C1d-lu-T7S.ibShadowedToolTip" = "Modifica il preset selezionato";
3 |
4 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected set"; ObjectID = "gBf-6T-hQv"; */
5 | "gBf-6T-hQv.ibShadowedToolTip" = "Rimuovi il preset selezionato";
6 |
7 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "iRF-P7-a3Q"; */
8 | "iRF-P7-a3Q.ibExternalAccessibilityDescription" = "Preset";
9 |
10 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected set"; ObjectID = "SIg-lA-6FA"; */
11 | "SIg-lA-6FA.ibShadowedToolTip" = "Rimuovi il preset selezionato";
12 |
13 | /* Class = "NSButtonCell"; title = "Edit"; ObjectID = "W45-Bf-XCJ"; */
14 | "W45-Bf-XCJ.title" = "Modifica";
15 |
16 |
--------------------------------------------------------------------------------
/Classes/it.lproj/ProgressViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Saving…"; ObjectID = "1QY-aq-f1i"; */
2 | "1QY-aq-f1i.title" = "Salvo…";
3 |
4 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "13i-3e-aOA"; */
5 | "13i-3e-aOA.title" = "Annulla";
6 |
7 |
--------------------------------------------------------------------------------
/Classes/it.lproj/SaveOptions.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButton"; ibShadowedToolTip = "Note: don't use this option if you are not sure of what it is doing, it's not needed in almost every case.\nEnable 64bit timescale and duration support. Normally, it's only needed if a track will be longer than 10 hours."; ObjectID = "3CX-Vp-T0h"; */
2 | "3CX-Vp-T0h.ibShadowedToolTip" = "Nota: non usare questa opzione se non sei sicuro della sua funzione, non è quasi mai necessaria.\nAttiva la scala del tempo a 64bit. Normalmente è necessaria solo se una traccia ha una durata maggiore di 10 ore.";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Options:"; ObjectID = "BXP-AU-x3T"; */
5 | "BXP-AU-x3T.title" = "Opzioni:";
6 |
7 | /* Class = "NSTextFieldCell"; title = "File Format:"; ObjectID = "caN-zU-chS"; */
8 | "caN-zU-chS.title" = "Formato File:";
9 |
10 | /* Class = "NSButton"; ibShadowedToolTip = "Needed for mp4 larger than 4GB."; ObjectID = "emp-1S-F7H"; */
11 | "emp-1S-F7H.ibShadowedToolTip" = "Necessario per mp4 più grandi di 4GB.";
12 |
13 | /* Class = "NSButtonCell"; title = "Optimize"; ObjectID = "OZC-sc-82O"; */
14 | "OZC-sc-82O.title" = "Ottimizza";
15 |
16 |
--------------------------------------------------------------------------------
/Classes/it.lproj/TracksViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "0dC-Ux-mUt"; */
2 | "0dC-Ux-mUt.headerCell.title" = "Durata";
3 |
4 | /* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "3zj-cH-wWV"; */
5 | "3zj-cH-wWV.headerCell.title" = "Nome";
6 |
7 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Tracks"; ObjectID = "Bpi-e7-pHx"; */
8 | "Bpi-e7-pHx.ibExternalAccessibilityDescription" = "Tracce";
9 |
10 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Enabled"; ObjectID = "JD5-tO-uQc"; */
11 | "JD5-tO-uQc.ibExternalAccessibilityDescription" = "Abilitato";
12 |
13 | /* Class = "NSButton"; ibShadowedToolTip = "Enable or disable the track"; ObjectID = "JD5-tO-uQc"; */
14 | "JD5-tO-uQc.ibShadowedToolTip" = "Abilita o disabilita la traccia";
15 |
16 | /* Class = "NSTableColumn"; headerCell.title = "Language"; ObjectID = "qGd-Uo-RvP"; */
17 | "qGd-Uo-RvP.headerCell.title" = "Lingua";
18 |
19 | /* Class = "NSTableColumn"; headerCell.title = "Id"; ObjectID = "sB1-FL-VRd"; */
20 | "sB1-FL-VRd.headerCell.title" = "Id";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Format"; ObjectID = "vmh-dT-zIv"; */
23 | "vmh-dT-zIv.headerCell.title" = "Formato";
24 |
25 | /* Class = "NSTableColumn"; headerCell.title = "Enabled"; ObjectID = "Znw-bQ-tsE"; */
26 | "Znw-bQ-tsE.headerCell.title" = "Abilitato";
27 |
28 |
--------------------------------------------------------------------------------
/Classes/zh-Hans.lproj/DocumentWindowController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Window"; ObjectID = "s5f-yH-26m"; */
2 | "s5f-yH-26m.title" = "窗口";
3 |
4 |
--------------------------------------------------------------------------------
/Classes/zh-Hans.lproj/MetadataPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Annotations"; ObjectID = "6um-Rw-luk"; */
2 | "6um-Rw-luk.headerCell.title" = "注释";
3 |
4 | /* Class = "NSButtonCell"; title = "Keep empty annotations"; ObjectID = "7Ek-lI-5Lo"; */
5 | "7Ek-lI-5Lo.title" = "保留空白注释";
6 |
7 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "Aj4-bk-6RK"; */
8 | "Aj4-bk-6RK.headerCell.title" = "值";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Map the providers' metadata to the MP4 annotations"; ObjectID = "cUW-9F-EvO"; */
11 | "cUW-9F-EvO.title" = "将获取的元数据映射到 mp4 注释";
12 |
13 | /* Class = "CocoaBindingsConnection"; ibShadowedIsNilPlaceholder = "Null"; ObjectID = "dgq-hT-1Vg"; */
14 | "dgq-hT-1Vg.ibShadowedIsNilPlaceholder" = "无";
15 |
16 | /* Class = "NSTableColumn"; headerCell.title = "Type"; ObjectID = "gwa-XG-q0L"; */
17 | "gwa-XG-q0L.headerCell.title" = "类型";
18 |
19 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add annotation"; ObjectID = "Jdh-Cj-6ef"; */
20 | "Jdh-Cj-6ef.ibShadowedToolTip" = "添加注释条目";
21 |
22 | /* Class = "NSButtonCell"; title = "Restore Defaults"; ObjectID = "nBh-jv-KDG"; */
23 | "nBh-jv-KDG.title" = "恢复默认";
24 |
25 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata type"; ObjectID = "nXW-oy-rtu"; */
26 | "nXW-oy-rtu.ibExternalAccessibilityDescription" = "元数据类型";
27 |
28 | /* Class = "NSTextFieldCell"; title = "Available values:"; ObjectID = "OYx-Dd-YIf"; */
29 | "OYx-Dd-YIf.title" = "可用值:";
30 |
31 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "sd5-qb-K5v"; */
32 | "sd5-qb-K5v.ibShadowedToolTip" = "移除所选项";
33 |
34 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata map"; ObjectID = "Tid-Rc-Ljr"; */
35 | "Tid-Rc-Ljr.ibExternalAccessibilityDescription" = "元数据映射";
36 |
37 |
--------------------------------------------------------------------------------
/Classes/zh-Hans.lproj/OCRPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Language data files"; ObjectID = "7YG-8f-1AH"; */
2 | "7YG-8f-1AH.headerCell.title" = "语言支持文件";
3 |
4 | /* Class = "NSButtonCell"; title = "Get"; ObjectID = "DIS-cU-NvL"; */
5 | "DIS-cU-NvL.title" = "获取";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Language specific OCR data files can improve the optical character recognition results."; ObjectID = "LFI-zD-ohi"; */
8 | "LFI-zD-ohi.title" = "特定语言的 OCR 支持文件可以改善光学文字识别的结果";
9 |
10 |
--------------------------------------------------------------------------------
/Classes/zh-Hans.lproj/OffsetViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Offset:"; ObjectID = "1MN-KJ-v23"; */
2 | "1MN-KJ-v23.title" = "偏移:";
3 |
4 | /* Class = "NSTextFieldCell"; title = "ms"; ObjectID = "nxC-E2-XnZ"; */
5 | "nxC-E2-XnZ.title" = "毫秒";
6 |
7 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "Ypd-2w-xig"; */
8 | "Ypd-2w-xig.title" = "取消";
9 |
10 | /* Class = "NSButtonCell"; title = "OK"; ObjectID = "zRv-hv-PCL"; */
11 | "zRv-hv-PCL.title" = "确定";
12 |
13 |
--------------------------------------------------------------------------------
/Classes/zh-Hans.lproj/OutputPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Set the format to create a custom filename in the Save As… panel and in the queue."; ObjectID = "hE3-zH-XFE"; */
2 | "hE3-zH-XFE.title" = "在“另存为…”面板和队列中设置格式以创建自定义文件名。";
3 |
4 | /* Class = "NSButtonCell"; title = "Set filename of TV Shows to:"; ObjectID = "kQC-bu-0by"; */
5 | "kQC-bu-0by.title" = "将电视节目文件名设置为:";
6 |
7 | /* Class = "NSButtonCell"; title = "Set filename of Movies to:"; ObjectID = "wci-gO-GWT"; */
8 | "wci-gO-GWT.title" = "将电影文件名设置为:";
9 |
10 |
--------------------------------------------------------------------------------
/Classes/zh-Hans.lproj/PresetEditorViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "0nh-AI-EEk"; */
2 | "0nh-AI-EEk.title" = "保留现有注释";
3 |
4 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "2ur-nu-rZh"; */
5 | "2ur-nu-rZh.title" = "保留现有插图";
6 |
7 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Add metadata item"; ObjectID = "30"; */
8 | "30.ibExternalAccessibilityDescription" = "添加元数据条目";
9 |
10 | /* Class = "NSPopUpButton"; ibShadowedToolTip = "Add a new metadata item"; ObjectID = "30"; */
11 | "30.ibShadowedToolTip" = "添加一个新的元数据条目";
12 |
13 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Remove selected item"; ObjectID = "53"; */
14 | "53.ibExternalAccessibilityDescription" = "移除所选项";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected item"; ObjectID = "53"; */
17 | "53.ibShadowedToolTip" = "移除所选项";
18 |
19 | /* Class = "NSButton"; ibShadowedToolTip = "Dismiss"; ObjectID = "87e-za-hJV"; */
20 | "87e-za-hJV.ibShadowedToolTip" = "忽略";
21 |
22 | /* Class = "NSWindow"; title = "Window"; ObjectID = "167"; */
23 | "167.title" = "窗口";
24 |
25 | /* Class = "NSTextFieldCell"; title = "Name:"; ObjectID = "174"; */
26 | "174.title" = "名称:";
27 |
28 | /* Class = "NSButtonCell"; title = "Save"; ObjectID = "177"; */
29 | "177.title" = "存储";
30 |
31 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "178"; */
32 | "178.title" = "取消";
33 |
34 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "179"; */
35 | "179.ibExternalAccessibilityDescription" = "预设";
36 |
37 | /* Class = "NSButton"; ibShadowedToolTip = "Add an artwork"; ObjectID = "223"; */
38 | "223.ibShadowedToolTip" = "添加插图";
39 |
40 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected artwork"; ObjectID = "226"; */
41 | "226.ibShadowedToolTip" = "移除所选插图";
42 |
43 | /* Class = "NSSlider"; ibShadowedToolTip = "Change artworks view zoom"; ObjectID = "235"; */
44 | "235.ibShadowedToolTip" = "改变插图视图缩放";
45 |
46 | /* Class = "NSTextFieldCell"; title = "Title"; ObjectID = "CD8-S4-C35"; */
47 | "CD8-S4-C35.title" = "标题";
48 |
49 | /* Class = "NSButtonCell"; title = "Keep existing artworks"; ObjectID = "CHk-xu-U9f"; */
50 | "CHk-xu-U9f.title" = "保留现有插图";
51 |
52 | /* Class = "NSTableColumn"; headerCell.title = "Annotation"; ObjectID = "j7q-XE-YXB"; */
53 | "j7q-XE-YXB.headerCell.title" = "注释";
54 |
55 | /* Class = "NSButtonCell"; title = "Keep existing annotations"; ObjectID = "KxJ-Zr-uiZ"; */
56 | "KxJ-Zr-uiZ.title" = "保留现有注释";
57 |
58 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "os0-Yb-exW"; */
59 | "os0-Yb-exW.headerCell.title" = "值";
60 |
61 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Metadata"; ObjectID = "qg5-r0-E4V"; */
62 | "qg5-r0-E4V.ibExternalAccessibilityDescription" = "元数据";
63 |
64 | /* Class = "NSTextField"; ibExternalAccessibilityDescription = "Preset Title"; ObjectID = "RvM-No-Mwg"; */
65 | "RvM-No-Mwg.ibExternalAccessibilityDescription" = "预设标题";
66 |
67 | /* Class = "NSButtonCell"; title = "OK"; ObjectID = "xfY-4F-IAd"; */
68 | "xfY-4F-IAd.title" = "确定";
69 |
70 |
--------------------------------------------------------------------------------
/Classes/zh-Hans.lproj/PresetPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButton"; ibShadowedToolTip = "Edit selected set"; ObjectID = "C1d-lu-T7S"; */
2 | "C1d-lu-T7S.ibShadowedToolTip" = "编辑所选预设";
3 |
4 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected set"; ObjectID = "gBf-6T-hQv"; */
5 | "gBf-6T-hQv.ibShadowedToolTip" = "移除所选预设";
6 |
7 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Sets"; ObjectID = "iRF-P7-a3Q"; */
8 | "iRF-P7-a3Q.ibExternalAccessibilityDescription" = "预设";
9 |
10 | /* Class = "NSButton"; ibShadowedToolTip = "Remove selected set"; ObjectID = "SIg-lA-6FA"; */
11 | "SIg-lA-6FA.ibShadowedToolTip" = "移除所选预设";
12 |
13 | /* Class = "NSButtonCell"; title = "Edit"; ObjectID = "W45-Bf-XCJ"; */
14 | "W45-Bf-XCJ.title" = "编辑";
15 |
16 |
--------------------------------------------------------------------------------
/Classes/zh-Hans.lproj/ProgressViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Saving…"; ObjectID = "1QY-aq-f1i"; */
2 | "1QY-aq-f1i.title" = "正在存储…";
3 |
4 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "13i-3e-aOA"; */
5 | "13i-3e-aOA.title" = "取消";
6 |
7 |
--------------------------------------------------------------------------------
/Classes/zh-Hans.lproj/SaveOptions.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButton"; ibShadowedToolTip = "Note: don't use this option if you are not sure of what it is doing, it's not needed in almost every case.\nEnable 64bit timescale and duration support. Normally, it's only needed if a track will be longer than 10 hours."; ObjectID = "3CX-Vp-T0h"; */
2 | "3CX-Vp-T0h.ibShadowedToolTip" = "注意:如果不确定该选项的作用,请不要使用此选项,几乎在每种情况下都不需要使用此选项。\n启用64位时标和持续时间支持:通常,仅当时长超过10小时才需要。";
3 |
4 | /* Class = "NSButtonCell"; title = "64 bits chunk offset"; ObjectID = "14x-xv-HKI"; */
5 | "14x-xv-HKI.title" = "64位块偏移";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Options:"; ObjectID = "BXP-AU-x3T"; */
8 | "BXP-AU-x3T.title" = "选项:";
9 |
10 | /* Class = "NSTextFieldCell"; title = "File Format:"; ObjectID = "caN-zU-chS"; */
11 | "caN-zU-chS.title" = "文件格式:";
12 |
13 | /* Class = "NSButtonCell"; title = "64 bits times"; ObjectID = "DCI-a5-K73"; */
14 | "DCI-a5-K73.title" = "64位时间";
15 |
16 | /* Class = "NSButton"; ibShadowedToolTip = "Needed for mp4 larger than 4GB."; ObjectID = "emp-1S-F7H"; */
17 | "emp-1S-F7H.ibShadowedToolTip" = "当 mp4 文件超过 4GB 时需要此项";
18 |
19 | /* Class = "NSButtonCell"; title = "Optimize"; ObjectID = "OZC-sc-82O"; */
20 | "OZC-sc-82O.title" = "优化";
21 |
22 |
--------------------------------------------------------------------------------
/Classes/zh-Hans.lproj/TracksViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "0dC-Ux-mUt"; */
2 | "0dC-Ux-mUt.headerCell.title" = "持续时间";
3 |
4 | /* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "3zj-cH-wWV"; */
5 | "3zj-cH-wWV.headerCell.title" = "名称";
6 |
7 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Tracks"; ObjectID = "Bpi-e7-pHx"; */
8 | "Bpi-e7-pHx.ibExternalAccessibilityDescription" = "轨道";
9 |
10 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Enabled"; ObjectID = "JD5-tO-uQc"; */
11 | "JD5-tO-uQc.ibExternalAccessibilityDescription" = "已启用";
12 |
13 | /* Class = "NSButton"; ibShadowedToolTip = "Enable or disable the track"; ObjectID = "JD5-tO-uQc"; */
14 | "JD5-tO-uQc.ibShadowedToolTip" = "启用/禁用轨道";
15 |
16 | /* Class = "NSTextFieldCell"; title = "00:00:00"; ObjectID = "LAW-aU-7Ie"; */
17 | "LAW-aU-7Ie.title" = "00:00:00";
18 |
19 | /* Class = "NSTextFieldCell"; title = "Text"; ObjectID = "LgC-JT-Lsx"; */
20 | "LgC-JT-Lsx.title" = "文本";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Language"; ObjectID = "qGd-Uo-RvP"; */
23 | "qGd-Uo-RvP.headerCell.title" = "语言";
24 |
25 | /* Class = "NSTableColumn"; headerCell.title = "Id"; ObjectID = "sB1-FL-VRd"; */
26 | "sB1-FL-VRd.headerCell.title" = "ID";
27 |
28 | /* Class = "NSTableColumn"; headerCell.title = "Format"; ObjectID = "vmh-dT-zIv"; */
29 | "vmh-dT-zIv.headerCell.title" = "格式";
30 |
31 | /* Class = "NSTableColumn"; headerCell.title = "Enabled"; ObjectID = "Znw-bQ-tsE"; */
32 | "Znw-bQ-tsE.headerCell.title" = "已启用";
33 |
34 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Subler License
2 |
3 | Most files in Subler are under the GNU General Public License Version 2
4 | (GPLv2) license; read the file COPYING for details.
5 |
6 | Some files are under the GNU General Public License Version 2 or any later
7 | version (GPLv2+), the GNU Lesser General Public License Version 2.1 or any later
8 | version (LGPLv2.1+), or BSD/MIT/X11-style licenses. In combination, the GPLv2
9 | license applies to Subler.
10 |
11 | Graphic assets are covered by the license(s) specified in graphics/LICENSE.
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # README #
2 |
3 | ### What is this repository for? ###
4 |
5 | Subler is an Mac OS X app created to mux and tag mp4 files. The main features includes:
6 |
7 | * Creation of tx3g subtitles tracks, compatible with all Apple's devices (iPod, AppleTV, iPhone, QuickTime?).
8 | * Mux video, audio, chapters, subtitles and closed captions tracks from mov, mp4 and mkv.
9 | * Raw formats: H.264 Elementary streams (.h264, .264), AAC (.aac), AC3 (.ac3), Scenarist (.scc), VobSub? (.idx).
10 | * metadata editing and TMDb, TVDB and iTunes Store support.
11 |
12 | ### Build and run
13 |
14 | Clone the repository and include all submodules
15 | ```
16 | git clone --recurse-submodules https://github.com/SublerApp/Subler.git
17 | ```
18 | If you already cloned without submodules and need to add the submodules manually, `cd` into the `./Subler` directory and clone the dependency submodules with
19 | ```
20 | git submodule update --init --recursive
21 | ```
22 | Open `Subler.xcodeproj` in XCode
23 |
24 | Build and run the project by selecting the 'Subler' scheme (`Product` -> `Scheme` -> `Subler`) and clicking the 'Run' button in Xcode’s toolbar.
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Subler.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.assets.movies.read-write
6 |
7 | com.apple.security.automation.apple-events
8 |
9 | com.apple.security.files.bookmarks.app-scope
10 |
11 | com.apple.security.files.user-selected.read-write
12 |
13 | com.apple.security.network.client
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Subler.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Utilities/MP4Dump/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // MP4Dump
4 | //
5 | // Created by Damiano Galassi on 17/03/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @interface AppDelegate : NSObject
13 | @end
14 |
--------------------------------------------------------------------------------
/Utilities/MP4Dump/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // MP4Dump
4 | //
5 | // Created by Damiano Galassi on 17/03/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #include "mp4v2.h"
11 |
12 | NSString *libraryPath = nil;
13 |
14 | static void logCallback(MP4LogLevel loglevel, const char *fmt, va_list ap)
15 | {
16 | if (!libraryPath) {
17 | NSString *libraryDir = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
18 | NSUserDomainMask,
19 | YES).firstObject;
20 | NSString *AppSupportDirectory = [[libraryDir stringByAppendingPathComponent:@"Application Support"]
21 | stringByAppendingPathComponent:@"MP4Dump"];
22 |
23 | if (![NSFileManager.defaultManager fileExistsAtPath:AppSupportDirectory]) {
24 | [NSFileManager.defaultManager createDirectoryAtPath:AppSupportDirectory
25 | withIntermediateDirectories:YES
26 | attributes:nil
27 | error:NULL];
28 | }
29 | libraryPath = [AppSupportDirectory stringByAppendingPathComponent:@"temp.txt"];
30 |
31 | }
32 |
33 | FILE *file = fopen(libraryPath.fileSystemRepresentation, "a");
34 |
35 | vfprintf(file, fmt, ap);
36 | fprintf(file, "\n");
37 |
38 | fclose(file);
39 | }
40 |
41 | @implementation AppDelegate
42 |
43 | - (void)applicationWillFinishLaunching:(NSNotification *)aNotification
44 | {
45 | MP4SetLogCallback(logCallback);
46 | MP4LogSetLevel(MP4_LOG_INFO);
47 | [NSUserDefaults.standardUserDefaults registerDefaults:@{@"MP42LogLevel" : @3}];
48 | }
49 |
50 | - (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
51 | {
52 | return NO;
53 | }
54 |
55 | - (BOOL)applicationSupportsSecureRestorableState:(NSApplication *)app
56 | {
57 | return YES;
58 | }
59 |
60 | @end
61 |
--------------------------------------------------------------------------------
/Utilities/MP4Dump/MP4Dump.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.files.user-selected.read-only
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Utilities/MP4Dump/MP4Dump.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Utilities/MP4Dump/MP4Dump_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MP4Dump' target in the 'MP4Dump' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/Utilities/MP4Dump/MyDocument.h:
--------------------------------------------------------------------------------
1 | //
2 | // MyDocument.h
3 | // MP4Dump
4 | //
5 | // Created by Damiano Galassi on 27/03/10.
6 | // Copyright 2010 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 |
10 | #import
11 |
12 | @interface MyDocument : NSDocument
13 | {
14 | IBOutlet NSTextView * textView;
15 | IBOutlet NSPopUpButton *logLevelButton;
16 | NSString *result;
17 | }
18 |
19 | - (IBAction)setLogLevel:(id)sender;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Utilities/MP4Dump/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350
2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
3 | {\colortbl;\red255\green255\blue255;}
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Damiano Galassi\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Damiano Galassi\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b With special thanks to:
22 | \b0 \
23 | mp4v2\
24 | {\field{\*\fldinst{HYPERLINK "http://code.google.com/p/mp4v2"}}{\fldrslt http://code.google.com/p/mp4v2}}}
--------------------------------------------------------------------------------
/Utilities/MP4Dump/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Utilities/MP4Dump/main.mm:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // MP4Dump
4 | //
5 | // Created by Damiano Galassi on 27/03/10.
6 | // Copyright 2010 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | return NSApplicationMain(argc, (const char **) argv);
14 | }
15 |
--------------------------------------------------------------------------------
/Utilities/ParseFilename/ParseFilename.pl:
--------------------------------------------------------------------------------
1 | #!/usr/bin/perl
2 |
3 | use Video::Filename;
4 |
5 | my $filename = $ARGV[0];
6 |
7 | my $file = Video::Filename::new($filename);
8 |
9 | if ($file->isTVshow()) {
10 | print "tv" . "\n";
11 | print $file->{name} . "\n";
12 | print $file->{season} . "\n";
13 | print $file->{episode} . "\n";
14 | } elsif ($file->isEpisode()) {
15 | print "tv" . "\n";
16 | print $file->{name} . "\n";
17 | print $file->{season} . "\n";
18 | print $file->{episode} . "\n";
19 | print $file->{part} . "\n";
20 | } elsif ($file->isMovie()) {
21 | print "movie" . "\n";
22 | print $file->{movie} . "\n";
23 | } else {
24 | print "unknown" . "\n";
25 | }
26 |
27 | exit;
28 |
--------------------------------------------------------------------------------
/Utilities/ParseFilename/lib/Text/Roman.pm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/Utilities/ParseFilename/lib/Text/Roman.pm
--------------------------------------------------------------------------------
/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf2709
2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;\f2\fswiss\fcharset0 ArialMT;
3 | }
4 | {\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
5 | {\*\expandedcolortbl;;\cssrgb\c0\c0\c0\cname textColor;}
6 | \paperw12240\paperh15840\vieww16420\viewh14800\viewkind0
7 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0
8 |
9 | \f0\b\fs24 \cf2 Engineering & Human Interface Design:
10 | \f1\b0 \
11 | Damiano Galassi\
12 | \
13 |
14 | \f0\b Project Contributors:\
15 |
16 | \f1\b0
17 | \f2\fs26 Douglas Stebila\
18 | Priit Varik
19 | \f0\b\fs24 \
20 |
21 | \f1\b0 Ryan Walklin\
22 | Bicus\
23 | Odibi\
24 |
25 | \f2\fs26 maury.markowitz
26 | \f1\fs24 \
27 | \
28 |
29 | \f0\b Metadata providers:
30 | \f1\b0 \
31 | TMDb (TheMovieDB). This product uses the TMDb API but is not endorsed or certified by TMDb.\
32 | {\field{\*\fldinst{HYPERLINK "https://themoviedb.org/"}}{\fldrslt https://themoviedb.org/}}\
33 | TheTVDB\
34 | {\field{\*\fldinst{HYPERLINK "https://thetvdb.com/"}}{\fldrslt https://thetvdb.com/}}\
35 | \
36 |
37 | \f0\b Third-Party Resources:\
38 |
39 | \f1\b0 Tesseract\
40 | {\field{\*\fldinst{HYPERLINK "https://github.com/tesseract-ocr/tesseract"}}{\fldrslt https://github.com/tesseract-ocr/tesseract}}\
41 | Perian Project\
42 | {\field{\*\fldinst{HYPERLINK "https://www.perian.org"}}{\fldrslt https://www.perian.org}}\
43 | HandBrake\
44 | {\field{\*\fldinst{HYPERLINK "https://handbrake.fr/"}}{\fldrslt https://handbrake.fr/}}\
45 | mp4v2\
46 | {\field{\*\fldinst{HYPERLINK "https://github.com/SublerApp/mp4v2"}}{\fldrslt https://github.com/SublerApp/mp4v2}}\
47 | FFmpeg\
48 | {\field{\*\fldinst{HYPERLINK "https://ffmpeg.org/"}}{\fldrslt https://ffmpeg.org/}} \
49 | Video::Filename Perl library (by Behan Webster)\
50 | {\field{\*\fldinst{HYPERLINK "http://search.cpan.org/~behanw/Video-Filename-0.35/"}}{\fldrslt http://search.cpan.org/~behanw/Video-Filename-0.35/}}\
51 | \
52 | The code is available under the GPL. The development site is located at {\field{\*\fldinst{HYPERLINK "https://github.com/SublerApp/Subler"}}{\fldrslt https://github.com/SublerApp/Subler}}}
--------------------------------------------------------------------------------
/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SublerApp/Subler/87837a0f5e89dd4ac46ba21bc910fc5ae7edd15e/en.lproj/InfoPlist.strings
--------------------------------------------------------------------------------
/es-419.lproj/ArtworkSelector.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Load more artwork..."; ObjectID = "40h-Rv-m31"; */
2 | "40h-Rv-m31.title" = "Cargar más ilustraciones…";
3 |
4 | /* Class = "NSSlider"; ibExternalAccessibilityDescription = "Zoom"; ObjectID = "fMj-Ew-Qej"; */
5 | "fMj-Ew-Qej.ibExternalAccessibilityDescription" = "Cambiar tamaño de visualización de la ilustración";
6 |
7 | /* Class = "NSButtonCell"; title = "Set as artwork"; ObjectID = "rMb-PC-yTA"; */
8 | "rMb-PC-yTA.title" = "Agregar";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Progress status"; ObjectID = "TbL-2H-ra9"; */
11 | "TbL-2H-ra9.title" = "Estado del progreso";
12 |
13 | /* Class = "NSButtonCell"; title = "None"; ObjectID = "UDG-fN-bQH"; */
14 | "UDG-fN-bQH.title" = "Ninguna";
15 |
16 |
--------------------------------------------------------------------------------
/es-419.lproj/FileImportController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Import Metadata"; ObjectID = "0dA-so-rlU"; */
2 | "0dA-so-rlU.title" = "Importar metadatos";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Select tracks:"; ObjectID = "1JV-df-zeq"; */
5 | "1JV-df-zeq.title" = "Seleccionar pistas:";
6 |
7 | /* Class = "NSTextFieldCell"; title = "0"; ObjectID = "2LD-y7-Ko1"; */
8 | "2LD-y7-Ko1.title" = "0";
9 |
10 | /* Class = "NSTableColumn"; headerCell.title = "Id"; ObjectID = "a2Q-90-iMO"; */
11 | "a2Q-90-iMO.headerCell.title" = "Id";
12 |
13 | /* Class = "NSMenuItem"; title = "Check only tracks with the same language"; ObjectID = "D3Y-pV-hxZ"; */
14 | "D3Y-pV-hxZ.title" = "Verificar solo pistas con el mismo idioma";
15 |
16 | /* Class = "NSTableColumn"; headerCell.title = "Language"; ObjectID = "dyL-5A-jbn"; */
17 | "dyL-5A-jbn.headerCell.title" = "Idioma";
18 |
19 | /* Class = "NSMenuItem"; title = "Check"; ObjectID = "GIM-Js-R4l"; */
20 | "GIM-Js-R4l.title" = "Habilitar";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "jac-jE-VHr"; */
23 | "jac-jE-VHr.headerCell.title" = "Duración";
24 |
25 | /* Class = "NSTextFieldCell"; title = "Info"; ObjectID = "JH3-2P-Na2"; */
26 | "JH3-2P-Na2.title" = "Info";
27 |
28 | /* Class = "NSTextFieldCell"; title = "Lang"; ObjectID = "KM9-Op-UNe"; */
29 | "KM9-Op-UNe.title" = "Lang";
30 |
31 | /* Class = "NSTextFieldCell"; title = "id"; ObjectID = "Nrs-BO-n8T"; */
32 | "Nrs-BO-n8T.title" = "id";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "oS0-t5-87P"; */
35 | "oS0-t5-87P.headerCell.title" = "Nombre";
36 |
37 | /* Class = "NSButtonCell"; title = "Add"; ObjectID = "QCb-5J-Vfs"; */
38 | "QCb-5J-Vfs.title" = "Agregar";
39 |
40 | /* Class = "NSTableColumn"; headerCell.title = "Info"; ObjectID = "qRv-Tq-YMF"; */
41 | "qRv-Tq-YMF.headerCell.title" = "Info";
42 |
43 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "vW6-FN-zyM"; */
44 | "vW6-FN-zyM.title" = "Cancelar";
45 |
46 | /* Class = "NSMenuItem"; title = "Uncheck"; ObjectID = "w6q-DP-C0O"; */
47 | "w6q-DP-C0O.title" = "Deshabilitar";
48 |
49 | /* Class = "NSTableColumn"; headerCell.title = "Action"; ObjectID = "zFW-wr-9sg"; */
50 | "zFW-wr-9sg.headerCell.title" = "Acción";
51 |
52 |
--------------------------------------------------------------------------------
/es-419.lproj/GeneralPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Middle"; ObjectID = "2o1-dB-mt1"; */
2 | "2o1-dB-mt1.title" = "Media";
3 |
4 | /* Class = "NSButtonCell"; title = "Automatically check for update daily"; ObjectID = "2Pf-pq-4IX"; */
5 | "2Pf-pq-4IX.title" = "Comprobar automáticamente actualizaciones diariamente";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Beginning"; ObjectID = "3Vs-qA-7Z6"; */
8 | "3Vs-qA-7Z6.title" = "Inicial";
9 |
10 | /* Class = "NSButtonCell"; title = "Create Preview Images at position:"; ObjectID = "84"; */
11 | "84.title" = "Crear imágenes de previsualización en la posición:";
12 |
13 | /* Class = "NSTextFieldCell"; title = "Chapters:"; ObjectID = "85"; */
14 | "85.title" = "Capítulos:";
15 |
16 | /* Class = "NSButtonCell"; title = "Remember Size"; ObjectID = "86"; */
17 | "86.title" = "Recordar tamaño";
18 |
19 | /* Class = "NSButtonCell"; title = "Show open panel"; ObjectID = "87"; */
20 | "87.title" = "Mostrar panel de apertura de archivo";
21 |
22 | /* Class = "NSTextFieldCell"; title = "Window:"; ObjectID = "88"; */
23 | "88.title" = "Ventana:";
24 |
25 | /* Class = "NSTextFieldCell"; title = "At Launch:"; ObjectID = "89"; */
26 | "89.title" = "Al iniciar la aplicación:";
27 |
28 | /* Class = "NSButtonCell"; title = "Clear recent searches"; ObjectID = "134"; */
29 | "134.title" = "Borrar búsquedas recientes";
30 |
31 | /* Class = "NSButtonCell"; title = "Delete cached metadata"; ObjectID = "137"; */
32 | "137.title" = "Eliminar caché de metadatos";
33 |
34 | /* Class = "NSTextFieldCell"; title = "Privacy:"; ObjectID = "140"; */
35 | "140.title" = "Privacidad:";
36 |
37 | /* Class = "NSTextFieldCell"; title = "Show ratings for:"; ObjectID = "207"; */
38 | "207.title" = "Mostrar clasificación para:";
39 |
40 | /* Class = "NSTextFieldCell"; title = "USA ratings are always shown."; ObjectID = "250"; */
41 | "250.title" = "Las calificaciones de EE.UU. (USA) siempre se mostrarán.";
42 |
43 | /* Class = "NSTextFieldCell"; title = "End"; ObjectID = "He0-rl-DBi"; */
44 | "He0-rl-DBi.title" = "Final";
45 |
46 |
--------------------------------------------------------------------------------
/es-419.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle name */
2 | "CFBundleName" = "Subler";
3 |
4 | /* (No Comment) */
5 | "Matroska video" = "Vídeo Matroska";
6 |
7 | /* Privacy - AppleEvents Sending Usage Description */
8 | "NSAppleEventsUsageDescription" = "Subler necesita acceso para agregar películas a iTunes o a TV";
9 |
10 | /* Copyright (human-readable) */
11 | "NSHumanReadableCopyright" = "Copyright © 2009-2025, Damiano Galassi";
12 |
13 | /* (No Comment) */
14 | "SRT Subtitles" = "Subtítulos SRT";
15 |
16 | /* (No Comment) */
17 | "SSA Subtitles" = "Subtítulos SSA";
18 |
19 |
--------------------------------------------------------------------------------
/es-419.lproj/MediaTagsController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Check"; ObjectID = "7h1-sO-aUd"; */
2 | "7h1-sO-aUd.title" = "Habilitar";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Media tags:"; ObjectID = "xXI-Cs-cBg"; */
5 | "xXI-Cs-cBg.title" = "Etiquetas:";
6 |
7 |
--------------------------------------------------------------------------------
/es-419.lproj/PrefsWindowController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Preferences"; ObjectID = "1"; */
2 | "1.title" = "Configuración";
3 |
4 | /* Class = "NSToolbarItem"; label = "General"; ObjectID = "5r6-9s-apQ"; */
5 | "5r6-9s-apQ.label" = "General";
6 |
7 | /* Class = "NSToolbarItem"; paletteLabel = "General"; ObjectID = "5r6-9s-apQ"; */
8 | "5r6-9s-apQ.paletteLabel" = "General";
9 |
10 | /* Class = "NSToolbarItem"; label = "OCR"; ObjectID = "btg-Uy-o7I"; */
11 | "btg-Uy-o7I.label" = "OCR";
12 |
13 | /* Class = "NSToolbarItem"; paletteLabel = "OCR"; ObjectID = "btg-Uy-o7I"; */
14 | "btg-Uy-o7I.paletteLabel" = "OCR";
15 |
16 | /* Class = "NSToolbarItem"; label = "Sets"; ObjectID = "PFq-0J-qih"; */
17 | "PFq-0J-qih.label" = "Preset";
18 |
19 | /* Class = "NSToolbarItem"; paletteLabel = "Sets"; ObjectID = "PFq-0J-qih"; */
20 | "PFq-0J-qih.paletteLabel" = "Preset";
21 |
22 | /* Class = "NSToolbarItem"; label = "Advanced"; ObjectID = "udf-m4-mG8"; */
23 | "udf-m4-mG8.label" = "Avanzado";
24 |
25 | /* Class = "NSToolbarItem"; paletteLabel = "Advanced"; ObjectID = "udf-m4-mG8"; */
26 | "udf-m4-mG8.paletteLabel" = "Avanzado";
27 |
28 | /* Class = "NSToolbarItem"; label = "Filename"; ObjectID = "uxW-fx-zpe"; */
29 | "uxW-fx-zpe.label" = "Nombre de archivo";
30 |
31 | /* Class = "NSToolbarItem"; paletteLabel = "Filename"; ObjectID = "uxW-fx-zpe"; */
32 | "uxW-fx-zpe.paletteLabel" = "Nombre de archivo";
33 |
34 | /* Class = "NSToolbarItem"; label = "Metadata"; ObjectID = "Z2w-05-k1g"; */
35 | "Z2w-05-k1g.label" = "Metadatos";
36 |
37 | /* Class = "NSToolbarItem"; paletteLabel = "Metadata"; ObjectID = "Z2w-05-k1g"; */
38 | "Z2w-05-k1g.paletteLabel" = "Metadatos";
39 |
40 |
--------------------------------------------------------------------------------
/es-419.lproj/Queue.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Queue"; ObjectID = "1"; */
2 | "1.title" = "Cola";
3 |
4 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Queue"; ObjectID = "7"; */
5 | "7.ibExternalAccessibilityDescription" = "Cola";
6 |
7 | /* Class = "NSTableColumn"; headerCell.title = "nameColumn"; ObjectID = "8"; */
8 | "8.headerCell.title" = "nameColumn";
9 |
10 | /* Class = "NSMenuItem"; title = "Reveal in Finder"; ObjectID = "8gi-57-i6u"; */
11 | "8gi-57-i6u.title" = "Mostrar en el Finder";
12 |
13 | /* Class = "NSTextFieldCell"; title = "Queue items"; ObjectID = "13"; */
14 | "13.title" = "Elementos en cola";
15 |
16 | /* Class = "NSMenuItem"; title = "Remove from queue"; ObjectID = "79"; */
17 | "79.title" = "Quitar de la cola";
18 |
19 | /* Class = "NSMenuItem"; title = "Remove completed items"; ObjectID = "86"; */
20 | "86.title" = "Quitar elementos terminados";
21 |
22 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Info"; ObjectID = "o98-wM-YAQ"; */
23 | "o98-wM-YAQ.ibExternalAccessibilityDescription" = "Info";
24 |
25 | /* Class = "NSButton"; ibShadowedToolTip = "Show item info"; ObjectID = "o98-wM-YAQ"; */
26 | "o98-wM-YAQ.ibShadowedToolTip" = "Mostrar información del elemento";
27 |
28 | /* Class = "NSMenuItem"; title = "Edit…"; ObjectID = "qHz-Zh-l5L"; */
29 | "qHz-Zh-l5L.title" = "Editar…";
30 |
31 |
--------------------------------------------------------------------------------
/es-419.lproj/QueueItem.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Actions:"; ObjectID = "4B2-1n-ouM"; */
2 | "4B2-1n-ouM.title" = "Acciones:";
3 |
4 | /* Class = "NSTextFieldCell"; title = "ItemName"; ObjectID = "5j3-R9-JdX"; */
5 | "5j3-R9-JdX.title" = "ItemName";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Source:"; ObjectID = "9De-A4-Oas"; */
8 | "9De-A4-Oas.title" = "Fuente:";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Destination:"; ObjectID = "9R2-ND-o8w"; */
11 | "9R2-ND-o8w.title" = "Destino:";
12 |
13 | /* Class = "NSButtonCell"; title = "Edit…"; ObjectID = "cEO-ol-OLW"; */
14 | "cEO-ol-OLW.title" = "Editar…";
15 |
16 | /* Class = "CocoaBindingsConnection"; ibShadowedDisplayPattern = "%{value1}@"; ObjectID = "YsQ-nM-zxb"; */
17 | "YsQ-nM-zxb.ibShadowedDisplayPattern" = "%{value1}@";
18 |
19 |
--------------------------------------------------------------------------------
/es-419.lproj/SBActivityWindow.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Message Log"; ObjectID = "F0z-JX-Cv5"; */
2 | "F0z-JX-Cv5.title" = "Registro del mensajes";
3 |
4 | /* Class = "NSButtonCell"; title = "Clear"; ObjectID = "h1X-Ni-exQ"; */
5 | "h1X-Ni-exQ.title" = "Borrar";
6 |
7 |
--------------------------------------------------------------------------------
/es-419.lproj/SBChapterSearch.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Search results"; ObjectID = "1tx-ei-5Gq"; */
2 | "1tx-ei-5Gq.ibExternalAccessibilityDescription" = "Resultados de búsqueda";
3 |
4 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "3iF-NJ-e1F"; */
5 | "3iF-NJ-e1F.headerCell.title" = "Título";
6 |
7 | /* Class = "NSButtonCell"; title = "Add"; ObjectID = "6fG-qc-eA5"; */
8 | "6fG-qc-eA5.title" = "Agregar";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Title:"; ObjectID = "b8H-Nd-479"; */
11 | "b8H-Nd-479.title" = "Título:";
12 |
13 | /* Class = "NSButtonCell"; title = "Search"; ObjectID = "CPc-iU-dzR"; */
14 | "CPc-iU-dzR.title" = "Buscar";
15 |
16 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Result details"; ObjectID = "EaL-hZ-8qa"; */
17 | "EaL-hZ-8qa.ibExternalAccessibilityDescription" = "Detalles de los resultados";
18 |
19 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "kEl-ZX-dAp"; */
20 | "kEl-ZX-dAp.headerCell.title" = "Título";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "L1K-5d-J2y"; */
23 | "L1K-5d-J2y.headerCell.title" = "Duración";
24 |
25 | /* Class = "NSTableColumn"; headerCell.title = "Confirmations"; ObjectID = "NUF-4K-8JF"; */
26 | "NUF-4K-8JF.headerCell.title" = "Confirmaciones";
27 |
28 | /* Class = "NSTableColumn"; headerCell.title = "Chapters"; ObjectID = "O5Q-ih-ipB"; */
29 | "O5Q-ih-ipB.headerCell.title" = "Capítulos";
30 |
31 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "QM5-jw-kZn"; */
32 | "QM5-jw-kZn.title" = "Cancelar";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Time"; ObjectID = "UaF-b6-Y6G"; */
35 | "UaF-b6-Y6G.headerCell.title" = "Tiempo";
36 |
37 | /* Class = "NSTextFieldCell"; title = "Progress status"; ObjectID = "xUb-i4-9A1"; */
38 | "xUb-i4-9A1.title" = "Estado del progreso";
39 |
40 |
--------------------------------------------------------------------------------
/fr.lproj/ArtworkSelector.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Load more artwork..."; ObjectID = "40h-Rv-m31"; */
2 | "40h-Rv-m31.title" = "Charger plus d'illustrations";
3 |
4 | /* Class = "NSSlider"; ibExternalAccessibilityDescription = "Zoom"; ObjectID = "fMj-Ew-Qej"; */
5 | "fMj-Ew-Qej.ibExternalAccessibilityDescription" = "Zoom";
6 |
7 | /* Class = "NSButtonCell"; title = "Set as artwork"; ObjectID = "rMb-PC-yTA"; */
8 | "rMb-PC-yTA.title" = "Définir comme illustration";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Progress status"; ObjectID = "TbL-2H-ra9"; */
11 | "TbL-2H-ra9.title" = "État de la progression";
12 |
13 | /* Class = "NSButtonCell"; title = "None"; ObjectID = "UDG-fN-bQH"; */
14 | "UDG-fN-bQH.title" = "Aucun";
15 |
16 |
--------------------------------------------------------------------------------
/fr.lproj/FileImportController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Import Metadata"; ObjectID = "0dA-so-rlU"; */
2 | "0dA-so-rlU.title" = "Importer les métadonnées";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Select tracks:"; ObjectID = "1JV-df-zeq"; */
5 | "1JV-df-zeq.title" = "Sélectionner les pistes :";
6 |
7 | /* Class = "NSTextFieldCell"; title = "0"; ObjectID = "2LD-y7-Ko1"; */
8 | "2LD-y7-Ko1.title" = "0";
9 |
10 | /* Class = "NSTableColumn"; headerCell.title = "Id"; ObjectID = "a2Q-90-iMO"; */
11 | "a2Q-90-iMO.headerCell.title" = "Id";
12 |
13 | /* Class = "NSMenuItem"; title = "Check only tracks with the same language"; ObjectID = "D3Y-pV-hxZ"; */
14 | "D3Y-pV-hxZ.title" = "Vérifier seulement les pistes de la même langue";
15 |
16 | /* Class = "NSTableColumn"; headerCell.title = "Language"; ObjectID = "dyL-5A-jbn"; */
17 | "dyL-5A-jbn.headerCell.title" = "Langue";
18 |
19 | /* Class = "NSMenuItem"; title = "Check"; ObjectID = "GIM-Js-R4l"; */
20 | "GIM-Js-R4l.title" = "Vérifier";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "jac-jE-VHr"; */
23 | "jac-jE-VHr.headerCell.title" = "Durée";
24 |
25 | /* Class = "NSTextFieldCell"; title = "Info"; ObjectID = "JH3-2P-Na2"; */
26 | "JH3-2P-Na2.title" = "Info";
27 |
28 | /* Class = "NSTextFieldCell"; title = "Lang"; ObjectID = "KM9-Op-UNe"; */
29 | "KM9-Op-UNe.title" = "Lang";
30 |
31 | /* Class = "NSTextFieldCell"; title = "id"; ObjectID = "Nrs-BO-n8T"; */
32 | "Nrs-BO-n8T.title" = "id";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "oS0-t5-87P"; */
35 | "oS0-t5-87P.headerCell.title" = "Nom";
36 |
37 | /* Class = "NSButtonCell"; title = "Add"; ObjectID = "QCb-5J-Vfs"; */
38 | "QCb-5J-Vfs.title" = "Ajout";
39 |
40 | /* Class = "NSTableColumn"; headerCell.title = "Info"; ObjectID = "qRv-Tq-YMF"; */
41 | "qRv-Tq-YMF.headerCell.title" = "Info";
42 |
43 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "vW6-FN-zyM"; */
44 | "vW6-FN-zyM.title" = "Annuler";
45 |
46 | /* Class = "NSMenuItem"; title = "Uncheck"; ObjectID = "w6q-DP-C0O"; */
47 | "w6q-DP-C0O.title" = "Désélectionner";
48 |
49 | /* Class = "NSTableColumn"; headerCell.title = "Action"; ObjectID = "zFW-wr-9sg"; */
50 | "zFW-wr-9sg.headerCell.title" = "Action";
51 |
52 |
--------------------------------------------------------------------------------
/fr.lproj/GeneralPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Middle"; ObjectID = "2o1-dB-mt1"; */
2 | "2o1-dB-mt1.title" = "Milieu";
3 |
4 | /* Class = "NSButtonCell"; title = "Automatically check for update daily"; ObjectID = "2Pf-pq-4IX"; */
5 | "2Pf-pq-4IX.title" = "Vérifier automatiquement les mises à jour quotidiennement";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Beginning"; ObjectID = "3Vs-qA-7Z6"; */
8 | "3Vs-qA-7Z6.title" = "Début";
9 |
10 | /* Class = "NSButtonCell"; title = "Create Preview Images at position:"; ObjectID = "84"; */
11 | "84.title" = "Créer des images d'aperçu à la position :";
12 |
13 | /* Class = "NSTextFieldCell"; title = "Chapters:"; ObjectID = "85"; */
14 | "85.title" = "Chapitres :";
15 |
16 | /* Class = "NSButtonCell"; title = "Remember Size"; ObjectID = "86"; */
17 | "86.title" = "Se souvenir de la taille";
18 |
19 | /* Class = "NSButtonCell"; title = "Show open panel"; ObjectID = "87"; */
20 | "87.title" = "Afficher le panneau d'ouverture";
21 |
22 | /* Class = "NSTextFieldCell"; title = "Window:"; ObjectID = "88"; */
23 | "88.title" = "Fenêtre :";
24 |
25 | /* Class = "NSTextFieldCell"; title = "At Launch:"; ObjectID = "89"; */
26 | "89.title" = "Au lancement :";
27 |
28 | /* Class = "NSButtonCell"; title = "Clear recent searches"; ObjectID = "134"; */
29 | "134.title" = "Supprimer les recherches récentes";
30 |
31 | /* Class = "NSButtonCell"; title = "Delete cached metadata"; ObjectID = "137"; */
32 | "137.title" = "Supprimer le cache des métadonnées";
33 |
34 | /* Class = "NSTextFieldCell"; title = "Privacy:"; ObjectID = "140"; */
35 | "140.title" = "Confidentialité :";
36 |
37 | /* Class = "NSTextFieldCell"; title = "Show ratings for:"; ObjectID = "207"; */
38 | "207.title" = "Afficher les notes pour :";
39 |
40 | /* Class = "NSTextFieldCell"; title = "USA ratings are always shown."; ObjectID = "250"; */
41 | "250.title" = "Les notes USA sont toujours affichées.";
42 |
43 | /* Class = "NSTextFieldCell"; title = "End"; ObjectID = "He0-rl-DBi"; */
44 | "He0-rl-DBi.title" = "Fin";
45 |
46 |
--------------------------------------------------------------------------------
/fr.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle name */
2 | "CFBundleName" = "Subler";
3 |
4 | /* (No Comment) */
5 | "Matroska video" = "Vidéo Matroska";
6 |
7 | /* Privacy - AppleEvents Sending Usage Description */
8 | "NSAppleEventsUsageDescription" = "Subler nécessite l'accès pour ajouter des films à iTunes ou TV";
9 |
10 | /* Copyright (human-readable) */
11 | "NSHumanReadableCopyright" = "Droit d'auteur © 2009-2025, Damiano Galassi";
12 |
13 | /* (No Comment) */
14 | "SRT Subtitles" = "Sous-titres SRT";
15 |
16 | /* (No Comment) */
17 | "SSA Subtitles" = "Sous-titres SSA";
18 |
19 |
--------------------------------------------------------------------------------
/fr.lproj/MediaTagsController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Check"; ObjectID = "7h1-sO-aUd"; */
2 | "7h1-sO-aUd.title" = "Vérifier";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Media tags:"; ObjectID = "xXI-Cs-cBg"; */
5 | "xXI-Cs-cBg.title" = "Etiquettes du média :";
6 |
7 |
--------------------------------------------------------------------------------
/fr.lproj/PrefsWindowController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Preferences"; ObjectID = "1"; */
2 | "1.title" = "Préférences";
3 |
4 | /* Class = "NSToolbarItem"; label = "General"; ObjectID = "5r6-9s-apQ"; */
5 | "5r6-9s-apQ.label" = "Général";
6 |
7 | /* Class = "NSToolbarItem"; paletteLabel = "General"; ObjectID = "5r6-9s-apQ"; */
8 | "5r6-9s-apQ.paletteLabel" = "Général";
9 |
10 | /* Class = "NSToolbarItem"; label = "OCR"; ObjectID = "btg-Uy-o7I"; */
11 | "btg-Uy-o7I.label" = "OCR";
12 |
13 | /* Class = "NSToolbarItem"; paletteLabel = "OCR"; ObjectID = "btg-Uy-o7I"; */
14 | "btg-Uy-o7I.paletteLabel" = "OCR";
15 |
16 | /* Class = "NSToolbarItem"; label = "Sets"; ObjectID = "PFq-0J-qih"; */
17 | "PFq-0J-qih.label" = "Ensembles";
18 |
19 | /* Class = "NSToolbarItem"; paletteLabel = "Sets"; ObjectID = "PFq-0J-qih"; */
20 | "PFq-0J-qih.paletteLabel" = "Ensembles";
21 |
22 | /* Class = "NSToolbarItem"; label = "Advanced"; ObjectID = "udf-m4-mG8"; */
23 | "udf-m4-mG8.label" = "Avancé";
24 |
25 | /* Class = "NSToolbarItem"; paletteLabel = "Advanced"; ObjectID = "udf-m4-mG8"; */
26 | "udf-m4-mG8.paletteLabel" = "Avancé";
27 |
28 | /* Class = "NSToolbarItem"; label = "Filename"; ObjectID = "uxW-fx-zpe"; */
29 | "uxW-fx-zpe.label" = "Nom de fichier";
30 |
31 | /* Class = "NSToolbarItem"; paletteLabel = "Filename"; ObjectID = "uxW-fx-zpe"; */
32 | "uxW-fx-zpe.paletteLabel" = "Nom de fichier";
33 |
34 | /* Class = "NSToolbarItem"; label = "Metadata"; ObjectID = "Z2w-05-k1g"; */
35 | "Z2w-05-k1g.label" = "Métadonnées";
36 |
37 | /* Class = "NSToolbarItem"; paletteLabel = "Metadata"; ObjectID = "Z2w-05-k1g"; */
38 | "Z2w-05-k1g.paletteLabel" = "Métadonnées";
39 |
40 |
--------------------------------------------------------------------------------
/fr.lproj/Queue.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Queue"; ObjectID = "1"; */
2 | "1.title" = "File d'attente";
3 |
4 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Queue"; ObjectID = "7"; */
5 | "7.ibExternalAccessibilityDescription" = "File d'attente";
6 |
7 | /* Class = "NSTableColumn"; headerCell.title = "nameColumn"; ObjectID = "8"; */
8 | "8.headerCell.title" = "nameColumn";
9 |
10 | /* Class = "NSMenuItem"; title = "Reveal in Finder"; ObjectID = "8gi-57-i6u"; */
11 | "8gi-57-i6u.title" = "Afficher dans le Finder";
12 |
13 | /* Class = "NSTextFieldCell"; title = "Queue items"; ObjectID = "13"; */
14 | "13.title" = "Mettre en file d'attente";
15 |
16 | /* Class = "NSMenuItem"; title = "Remove from queue"; ObjectID = "79"; */
17 | "79.title" = "Retirer de la file d'attente";
18 |
19 | /* Class = "NSMenuItem"; title = "Remove completed items"; ObjectID = "86"; */
20 | "86.title" = "Retirer les éléments complétés";
21 |
22 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Info"; ObjectID = "o98-wM-YAQ"; */
23 | "o98-wM-YAQ.ibExternalAccessibilityDescription" = "Info";
24 |
25 | /* Class = "NSButton"; ibShadowedToolTip = "Show item info"; ObjectID = "o98-wM-YAQ"; */
26 | "o98-wM-YAQ.ibShadowedToolTip" = "Afficher les informations de l'élément";
27 |
28 | /* Class = "NSMenuItem"; title = "Edit…"; ObjectID = "qHz-Zh-l5L"; */
29 | "qHz-Zh-l5L.title" = "Modifier...";
30 |
31 |
--------------------------------------------------------------------------------
/fr.lproj/QueueItem.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Actions:"; ObjectID = "4B2-1n-ouM"; */
2 | "4B2-1n-ouM.title" = "Actions :";
3 |
4 | /* Class = "NSTextFieldCell"; title = "ItemName"; ObjectID = "5j3-R9-JdX"; */
5 | "5j3-R9-JdX.title" = "ItemName";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Source:"; ObjectID = "9De-A4-Oas"; */
8 | "9De-A4-Oas.title" = "Source :";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Destination:"; ObjectID = "9R2-ND-o8w"; */
11 | "9R2-ND-o8w.title" = "Destination :";
12 |
13 | /* Class = "NSButtonCell"; title = "Edit…"; ObjectID = "cEO-ol-OLW"; */
14 | "cEO-ol-OLW.title" = "Modifier...";
15 |
16 | /* Class = "CocoaBindingsConnection"; ibShadowedDisplayPattern = "%{value1}@"; ObjectID = "YsQ-nM-zxb"; */
17 | "YsQ-nM-zxb.ibShadowedDisplayPattern" = "%{value1}@";
18 |
19 |
--------------------------------------------------------------------------------
/fr.lproj/SBActivityWindow.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Message Log"; ObjectID = "F0z-JX-Cv5"; */
2 | "F0z-JX-Cv5.title" = "Journal des messages";
3 |
4 | /* Class = "NSButtonCell"; title = "Clear"; ObjectID = "h1X-Ni-exQ"; */
5 | "h1X-Ni-exQ.title" = "Effacer";
6 |
7 |
--------------------------------------------------------------------------------
/fr.lproj/SBChapterSearch.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Search results"; ObjectID = "1tx-ei-5Gq"; */
2 | "1tx-ei-5Gq.ibExternalAccessibilityDescription" = "Résultats de la recherche";
3 |
4 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "3iF-NJ-e1F"; */
5 | "3iF-NJ-e1F.headerCell.title" = "Titre";
6 |
7 | /* Class = "NSButtonCell"; title = "Add"; ObjectID = "6fG-qc-eA5"; */
8 | "6fG-qc-eA5.title" = "Ajouter";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Title:"; ObjectID = "b8H-Nd-479"; */
11 | "b8H-Nd-479.title" = "Titre :";
12 |
13 | /* Class = "NSButtonCell"; title = "Search"; ObjectID = "CPc-iU-dzR"; */
14 | "CPc-iU-dzR.title" = "Rechercher";
15 |
16 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Result details"; ObjectID = "EaL-hZ-8qa"; */
17 | "EaL-hZ-8qa.ibExternalAccessibilityDescription" = "Détails des résultats";
18 |
19 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "kEl-ZX-dAp"; */
20 | "kEl-ZX-dAp.headerCell.title" = "Titre";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "L1K-5d-J2y"; */
23 | "L1K-5d-J2y.headerCell.title" = "Durée";
24 |
25 | /* Class = "NSTableColumn"; headerCell.title = "Confirmations"; ObjectID = "NUF-4K-8JF"; */
26 | "NUF-4K-8JF.headerCell.title" = "Confirmations";
27 |
28 | /* Class = "NSTableColumn"; headerCell.title = "Chapters"; ObjectID = "O5Q-ih-ipB"; */
29 | "O5Q-ih-ipB.headerCell.title" = "Chapitres";
30 |
31 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "QM5-jw-kZn"; */
32 | "QM5-jw-kZn.title" = "Annuler";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Time"; ObjectID = "UaF-b6-Y6G"; */
35 | "UaF-b6-Y6G.headerCell.title" = "Heure";
36 |
37 | /* Class = "NSTextFieldCell"; title = "Progress status"; ObjectID = "xUb-i4-9A1"; */
38 | "xUb-i4-9A1.title" = "Etat de la progression";
39 |
40 |
--------------------------------------------------------------------------------
/it.lproj/ArtworkSelector.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Load more artwork..."; ObjectID = "40h-Rv-m31"; */
2 | "40h-Rv-m31.title" = "Carica più illustrazioni…";
3 |
4 | /* Class = "NSSlider"; ibExternalAccessibilityDescription = "Zoom"; ObjectID = "fMj-Ew-Qej"; */
5 | "fMj-Ew-Qej.ibExternalAccessibilityDescription" = "Ingrandisci";
6 |
7 | /* Class = "NSButtonCell"; title = "Set as artwork"; ObjectID = "rMb-PC-yTA"; */
8 | "rMb-PC-yTA.title" = "Imposta come illustrazione";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Progress status"; ObjectID = "TbL-2H-ra9"; */
11 | "TbL-2H-ra9.title" = "Stato progresso";
12 |
13 | /* Class = "NSButtonCell"; title = "None"; ObjectID = "UDG-fN-bQH"; */
14 | "UDG-fN-bQH.title" = "Nessuno";
15 |
16 |
--------------------------------------------------------------------------------
/it.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf2709
2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;\f2\fswiss\fcharset0 ArialMT;
3 | }
4 | {\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
5 | {\*\expandedcolortbl;;\cssrgb\c0\c0\c0\cname textColor;}
6 | \paperw12240\paperh15840\vieww9000\viewh8400\viewkind0
7 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\partightenfactor0
8 |
9 | \f0\b\fs24 \cf2 Engineering & Human Interface Design:
10 | \f1\b0 \
11 | Damiano Galassi\
12 | \
13 |
14 | \f0\b Project Contributors:\
15 |
16 | \f1\b0
17 | \f2\fs26 Douglas Stebila\
18 | Priit Varik
19 | \f0\b\fs24 \
20 |
21 | \f1\b0 Ryan Walklin\
22 | Bicus\
23 | Odibi\
24 |
25 | \f2\fs26 maury.markowitz
26 | \f1\fs24 \
27 | \
28 |
29 | \f0\b Metadata providers:
30 | \f1\b0 \
31 | TMDb (TheMovieDB). This product uses the TMDb API but is not endorsed or certified by TMDb.\
32 | {\field{\*\fldinst{HYPERLINK "https://themoviedb.org/"}}{\fldrslt https://themoviedb.org/}}\
33 | TheTVDB\
34 | {\field{\*\fldinst{HYPERLINK "https://thetvdb.com/"}}{\fldrslt https://thetvdb.com/}}\
35 | Squared TV Art\
36 | {\field{\*\fldinst{HYPERLINK "https://squaredtvart.tumblr.com"}}{\fldrslt https://squaredtvart.tumblr.com}}\
37 | ChapterDB\
38 | {\field{\*\fldinst{HYPERLINK "http://chapterdb.plex.tv"}}{\fldrslt http://chapterdb.plex.tv}}\
39 | \
40 |
41 | \f0\b Third-Party Resources:\
42 |
43 | \f1\b0 Tesseract\
44 | {\field{\*\fldinst{HYPERLINK "https://github.com/tesseract-ocr/tesseract"}}{\fldrslt https://github.com/tesseract-ocr/tesseract}}\
45 | Perian Project\
46 | {\field{\*\fldinst{HYPERLINK "https://www.perian.org"}}{\fldrslt https://www.perian.org}}\
47 | HandBrake\
48 | {\field{\*\fldinst{HYPERLINK "https://handbrake.fr/"}}{\fldrslt https://handbrake.fr/}}\
49 | mp4v2\
50 | {\field{\*\fldinst{HYPERLINK "http://code.google.com/p/mp4v2"}}{\fldrslt https://code.google.com/p/mp4v2}}\
51 | FFmpeg\
52 | {\field{\*\fldinst{HYPERLINK "https://ffmpeg.org/"}}{\fldrslt https://ffmpeg.org/}} \
53 | Video::Filename Perl library (by Behan Webster)\
54 | {\field{\*\fldinst{HYPERLINK "http://search.cpan.org/~behanw/Video-Filename-0.35/"}}{\fldrslt http://search.cpan.org/~behanw/Video-Filename-0.35/}}\
55 | \
56 | The code is available under the GPL. The development site is located at {\field{\*\fldinst{HYPERLINK "https://github.com/SublerApp/Subler"}}{\fldrslt https://github.com/SublerApp/Subler}}}
--------------------------------------------------------------------------------
/it.lproj/FileImportController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Import Metadata"; ObjectID = "0dA-so-rlU"; */
2 | "0dA-so-rlU.title" = "Importa Metadata";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Select tracks:"; ObjectID = "1JV-df-zeq"; */
5 | "1JV-df-zeq.title" = "Seleziona tracce:";
6 |
7 | /* Class = "NSTextFieldCell"; title = "0"; ObjectID = "2LD-y7-Ko1"; */
8 | "2LD-y7-Ko1.title" = "0";
9 |
10 | /* Class = "NSTableColumn"; headerCell.title = "Id"; ObjectID = "a2Q-90-iMO"; */
11 | "a2Q-90-iMO.headerCell.title" = "Id";
12 |
13 | /* Class = "NSMenuItem"; title = "Check only tracks with the same language"; ObjectID = "D3Y-pV-hxZ"; */
14 | "D3Y-pV-hxZ.title" = "Abilità solo le tracce aventi la stessa lingua";
15 |
16 | /* Class = "NSTableColumn"; headerCell.title = "Language"; ObjectID = "dyL-5A-jbn"; */
17 | "dyL-5A-jbn.headerCell.title" = "Lingua";
18 |
19 | /* Class = "NSMenuItem"; title = "Check"; ObjectID = "GIM-Js-R4l"; */
20 | "GIM-Js-R4l.title" = "Abilita";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "jac-jE-VHr"; */
23 | "jac-jE-VHr.headerCell.title" = "Durata";
24 |
25 | /* Class = "NSTextFieldCell"; title = "Info"; ObjectID = "JH3-2P-Na2"; */
26 | "JH3-2P-Na2.title" = "Info";
27 |
28 | /* Class = "NSTextFieldCell"; title = "id"; ObjectID = "Nrs-BO-n8T"; */
29 | "Nrs-BO-n8T.title" = "id";
30 |
31 | /* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "oS0-t5-87P"; */
32 | "oS0-t5-87P.headerCell.title" = "Nome";
33 |
34 | /* Class = "NSButtonCell"; title = "Add"; ObjectID = "QCb-5J-Vfs"; */
35 | "QCb-5J-Vfs.title" = "Aggiungi";
36 |
37 | /* Class = "NSTableColumn"; headerCell.title = "Info"; ObjectID = "qRv-Tq-YMF"; */
38 | "qRv-Tq-YMF.headerCell.title" = "Info";
39 |
40 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "vW6-FN-zyM"; */
41 | "vW6-FN-zyM.title" = "Annulla";
42 |
43 | /* Class = "NSMenuItem"; title = "Uncheck"; ObjectID = "w6q-DP-C0O"; */
44 | "w6q-DP-C0O.title" = "Disabilita";
45 |
46 | /* Class = "NSTableColumn"; headerCell.title = "Action"; ObjectID = "zFW-wr-9sg"; */
47 | "zFW-wr-9sg.headerCell.title" = "Azione";
48 |
49 |
--------------------------------------------------------------------------------
/it.lproj/GeneralPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Middle"; ObjectID = "2o1-dB-mt1"; */
2 | "2o1-dB-mt1.title" = "Metà";
3 |
4 | /* Class = "NSButtonCell"; title = "Automatically check for update daily"; ObjectID = "2Pf-pq-4IX"; */
5 | "2Pf-pq-4IX.title" = "Controlla automaticamente per aggiornamenti ogni giorno";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Beginning"; ObjectID = "3Vs-qA-7Z6"; */
8 | "3Vs-qA-7Z6.title" = "Inizio";
9 |
10 | /* Class = "NSButtonCell"; title = "Create Preview Images at position:"; ObjectID = "84"; */
11 | "84.title" = "Crea immagini di anteprima alla posizione:";
12 |
13 | /* Class = "NSTextFieldCell"; title = "Chapters:"; ObjectID = "85"; */
14 | "85.title" = "Capitoli:";
15 |
16 | /* Class = "NSButtonCell"; title = "Remember Size"; ObjectID = "86"; */
17 | "86.title" = "Ricorda dimensione";
18 |
19 | /* Class = "NSButtonCell"; title = "Show open panel"; ObjectID = "87"; */
20 | "87.title" = "Mostra il pannello di apertura";
21 |
22 | /* Class = "NSTextFieldCell"; title = "Window:"; ObjectID = "88"; */
23 | "88.title" = "Finestra:";
24 |
25 | /* Class = "NSTextFieldCell"; title = "At Launch:"; ObjectID = "89"; */
26 | "89.title" = "All'avvio:";
27 |
28 | /* Class = "NSButtonCell"; title = "Clear recent searches"; ObjectID = "134"; */
29 | "134.title" = "Cancella ricerche recenti";
30 |
31 | /* Class = "NSButtonCell"; title = "Delete cached metadata"; ObjectID = "137"; */
32 | "137.title" = "Cancella cache metadata";
33 |
34 | /* Class = "NSTextFieldCell"; title = "Privacy:"; ObjectID = "140"; */
35 | "140.title" = "Privacy:";
36 |
37 | /* Class = "NSTextFieldCell"; title = "Show ratings for:"; ObjectID = "207"; */
38 | "207.title" = "Mostra classifiche per:";
39 |
40 | /* Class = "NSTextFieldCell"; title = "USA ratings are always shown."; ObjectID = "250"; */
41 | "250.title" = "Le classifiche USA sono sempre visibili.";
42 |
43 | /* Class = "NSTextFieldCell"; title = "End"; ObjectID = "He0-rl-DBi"; */
44 | "He0-rl-DBi.title" = "Fine";
45 |
46 |
--------------------------------------------------------------------------------
/it.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle name */
2 | "CFBundleName" = "Subler";
3 |
4 | /* (No Comment) */
5 | "Matroska video" = "Matroska video";
6 |
7 | /* Privacy - AppleEvents Sending Usage Description */
8 | "NSAppleEventsUsageDescription" = "Subler ha bisogno dell'autorizzazione per aggiungere i filmati ad iTunes o a TV";
9 |
10 | /* Copyright (human-readable) */
11 | "NSHumanReadableCopyright" = "Copyright © 2009-2025, Damiano Galassi";
12 |
13 | /* (No Comment) */
14 | "SRT Subtitles" = "Sottotitoli SRT";
15 |
16 | /* (No Comment) */
17 | "SSA Subtitles" = "SSA";
18 |
19 |
--------------------------------------------------------------------------------
/it.lproj/MediaTagsController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Check"; ObjectID = "7h1-sO-aUd"; */
2 | "7h1-sO-aUd.title" = "Abilita";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Media tags:"; ObjectID = "xXI-Cs-cBg"; */
5 | "xXI-Cs-cBg.title" = "Tag media:";
6 |
7 |
--------------------------------------------------------------------------------
/it.lproj/MetadataSearch.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Metadata Provider"; ObjectID = "0aO-Wz-ASZ"; */
2 | "0aO-Wz-ASZ.ibExternalAccessibilityDescription" = "Provider metadata";
3 |
4 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Language"; ObjectID = "4yY-id-JNb"; */
5 | "4yY-id-JNb.ibExternalAccessibilityDescription" = "Lingua";
6 |
7 | /* Class = "NSButtonCell"; title = "Search"; ObjectID = "5Mu-cI-Uiu"; */
8 | "5Mu-cI-Uiu.title" = "Cerca";
9 |
10 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Result details"; ObjectID = "7Te-u0-Sax"; */
11 | "7Te-u0-Sax.ibExternalAccessibilityDescription" = "Dettagli risultato";
12 |
13 | /* Class = "NSTabViewItem"; label = "Movie"; ObjectID = "apc-8c-iyM"; */
14 | "apc-8c-iyM.label" = "Film";
15 |
16 | /* Class = "NSMenuItem"; title = "TheMovieDB"; ObjectID = "FoR-26-u9n"; */
17 | "FoR-26-u9n.title" = "TheMovieDB";
18 |
19 | /* Class = "NSTabViewItem"; label = "TV Episode"; ObjectID = "GPk-3A-rQI"; */
20 | "GPk-3A-rQI.label" = "Episodio TV";
21 |
22 | /* Class = "NSTextFieldCell"; title = "Progress status"; ObjectID = "gYx-cY-5Xj"; */
23 | "gYx-cY-5Xj.title" = "Stato progresso";
24 |
25 | /* Class = "NSButtonCell"; title = "Search"; ObjectID = "HF1-WK-lv1"; */
26 | "HF1-WK-lv1.title" = "Cerca";
27 |
28 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Search results"; ObjectID = "IDz-Ox-2sW"; */
29 | "IDz-Ox-2sW.ibExternalAccessibilityDescription" = "Risultati ricerca";
30 |
31 | /* Class = "NSMenuItem"; title = "iTunes Store"; ObjectID = "j44-FV-Lpy"; */
32 | "j44-FV-Lpy.title" = "iTunes Store";
33 |
34 | /* Class = "NSMenuItem"; title = "TheMovieDB"; ObjectID = "KpX-If-oKC"; */
35 | "KpX-If-oKC.title" = "TheMovieDB";
36 |
37 | /* Class = "NSTextFieldCell"; title = "Season #"; ObjectID = "kz7-mH-DuT"; */
38 | "kz7-mH-DuT.title" = "# Stagione";
39 |
40 | /* Class = "NSTextFieldCell"; title = "TV Show:"; ObjectID = "lE4-J1-ySV"; */
41 | "lE4-J1-ySV.title" = "Serie TV:";
42 |
43 | /* Class = "NSMenuItem"; title = "iTunes Store"; ObjectID = "nn6-mR-Bh1"; */
44 | "nn6-mR-Bh1.title" = "iTunes Store";
45 |
46 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "PJC-dF-B1z"; */
47 | "PJC-dF-B1z.title" = "Annulla";
48 |
49 | /* Class = "NSButtonCell"; title = "Add"; ObjectID = "PqB-NK-OtT"; */
50 | "PqB-NK-OtT.title" = "Aggiungi";
51 |
52 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Language"; ObjectID = "qsS-B6-c2q"; */
53 | "qsS-B6-c2q.ibExternalAccessibilityDescription" = "Lingua";
54 |
55 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Metadata provider"; ObjectID = "UTG-O0-5RG"; */
56 | "UTG-O0-5RG.ibExternalAccessibilityDescription" = "Provider metadata";
57 |
58 | /* Class = "NSTextFieldCell"; title = "Movie:"; ObjectID = "uyt-vh-nv6"; */
59 | "uyt-vh-nv6.title" = "Film:";
60 |
61 | /* Class = "NSTableColumn"; headerCell.title = "Annotation"; ObjectID = "XgL-ec-DEt"; */
62 | "XgL-ec-DEt.headerCell.title" = "Annotazione";
63 |
64 | /* Class = "NSMenuItem"; title = "TheTVDB"; ObjectID = "xjQ-ex-5kU"; */
65 | "xjQ-ex-5kU.title" = "TheTVDB";
66 |
67 | /* Class = "NSTextFieldCell"; title = "Episode #"; ObjectID = "Zik-QU-m81"; */
68 | "Zik-QU-m81.title" = "# Episodio";
69 |
70 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "ZZg-QL-MyD"; */
71 | "ZZg-QL-MyD.headerCell.title" = "Titolo";
72 |
73 |
--------------------------------------------------------------------------------
/it.lproj/PrefsWindowController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Preferences"; ObjectID = "1"; */
2 | "1.title" = "Preferenze";
3 |
4 | /* Class = "NSToolbarItem"; label = "General"; ObjectID = "5r6-9s-apQ"; */
5 | "5r6-9s-apQ.label" = "Generali";
6 |
7 | /* Class = "NSToolbarItem"; paletteLabel = "General"; ObjectID = "5r6-9s-apQ"; */
8 | "5r6-9s-apQ.paletteLabel" = "Generali";
9 |
10 | /* Class = "NSToolbarItem"; label = "OCR"; ObjectID = "btg-Uy-o7I"; */
11 | "btg-Uy-o7I.label" = "OCR";
12 |
13 | /* Class = "NSToolbarItem"; paletteLabel = "OCR"; ObjectID = "btg-Uy-o7I"; */
14 | "btg-Uy-o7I.paletteLabel" = "OCR";
15 |
16 | /* Class = "NSToolbarItem"; label = "Sets"; ObjectID = "PFq-0J-qih"; */
17 | "PFq-0J-qih.label" = "Preset";
18 |
19 | /* Class = "NSToolbarItem"; paletteLabel = "Sets"; ObjectID = "PFq-0J-qih"; */
20 | "PFq-0J-qih.paletteLabel" = "Preset";
21 |
22 | /* Class = "NSToolbarItem"; label = "Advanced"; ObjectID = "udf-m4-mG8"; */
23 | "udf-m4-mG8.label" = "Avanzate";
24 |
25 | /* Class = "NSToolbarItem"; paletteLabel = "Advanced"; ObjectID = "udf-m4-mG8"; */
26 | "udf-m4-mG8.paletteLabel" = "Avanzate";
27 |
28 | /* Class = "NSToolbarItem"; label = "Filename"; ObjectID = "uxW-fx-zpe"; */
29 | "uxW-fx-zpe.label" = "Nome file";
30 |
31 | /* Class = "NSToolbarItem"; paletteLabel = "Filename"; ObjectID = "uxW-fx-zpe"; */
32 | "uxW-fx-zpe.paletteLabel" = "Nome file";
33 |
34 | /* Class = "NSToolbarItem"; label = "Metadata"; ObjectID = "Z2w-05-k1g"; */
35 | "Z2w-05-k1g.label" = "Metadata";
36 |
37 | /* Class = "NSToolbarItem"; paletteLabel = "Metadata"; ObjectID = "Z2w-05-k1g"; */
38 | "Z2w-05-k1g.paletteLabel" = "Metadata";
39 |
40 |
--------------------------------------------------------------------------------
/it.lproj/Queue.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Queue"; ObjectID = "1"; */
2 | "1.title" = "Coda";
3 |
4 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Queue"; ObjectID = "7"; */
5 | "7.ibExternalAccessibilityDescription" = "Coda";
6 |
7 | /* Class = "NSMenuItem"; title = "Reveal in Finder"; ObjectID = "8gi-57-i6u"; */
8 | "8gi-57-i6u.title" = "Mostra in Finder";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Queue items"; ObjectID = "13"; */
11 | "13.title" = "Elementi in coda";
12 |
13 | /* Class = "NSMenuItem"; title = "Remove from queue"; ObjectID = "79"; */
14 | "79.title" = "Rimuovi dalla coda";
15 |
16 | /* Class = "NSMenuItem"; title = "Remove completed items"; ObjectID = "86"; */
17 | "86.title" = "Rimuovi gli elementi completati";
18 |
19 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Info"; ObjectID = "o98-wM-YAQ"; */
20 | "o98-wM-YAQ.ibExternalAccessibilityDescription" = "Info";
21 |
22 | /* Class = "NSButton"; ibShadowedToolTip = "Show item info"; ObjectID = "o98-wM-YAQ"; */
23 | "o98-wM-YAQ.ibShadowedToolTip" = "Mostra info elemento";
24 |
25 | /* Class = "NSMenuItem"; title = "Edit…"; ObjectID = "qHz-Zh-l5L"; */
26 | "qHz-Zh-l5L.title" = "Modifica…";
27 |
28 |
--------------------------------------------------------------------------------
/it.lproj/QueueItem.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Actions:"; ObjectID = "4B2-1n-ouM"; */
2 | "4B2-1n-ouM.title" = "Azioni:";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Source:"; ObjectID = "9De-A4-Oas"; */
5 | "9De-A4-Oas.title" = "Sorgente:";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Destination:"; ObjectID = "9R2-ND-o8w"; */
8 | "9R2-ND-o8w.title" = "Destinazione:";
9 |
10 | /* Class = "NSButtonCell"; title = "Edit…"; ObjectID = "cEO-ol-OLW"; */
11 | "cEO-ol-OLW.title" = "Modifica…";
12 |
13 |
--------------------------------------------------------------------------------
/it.lproj/SBActivityWindow.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Message Log"; ObjectID = "F0z-JX-Cv5"; */
2 | "F0z-JX-Cv5.title" = "Registro Messaggi";
3 |
4 | /* Class = "NSButtonCell"; title = "Clear"; ObjectID = "h1X-Ni-exQ"; */
5 | "h1X-Ni-exQ.title" = "Pulisci";
6 |
7 |
--------------------------------------------------------------------------------
/it.lproj/SBChapterSearch.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Search results"; ObjectID = "1tx-ei-5Gq"; */
2 | "1tx-ei-5Gq.ibExternalAccessibilityDescription" = "Risultati ricerca";
3 |
4 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "3iF-NJ-e1F"; */
5 | "3iF-NJ-e1F.headerCell.title" = "Titolo";
6 |
7 | /* Class = "NSButtonCell"; title = "Add"; ObjectID = "6fG-qc-eA5"; */
8 | "6fG-qc-eA5.title" = "Aggiungi";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Title:"; ObjectID = "b8H-Nd-479"; */
11 | "b8H-Nd-479.title" = "Titolo:";
12 |
13 | /* Class = "NSButtonCell"; title = "Search"; ObjectID = "CPc-iU-dzR"; */
14 | "CPc-iU-dzR.title" = "Cerca";
15 |
16 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Result details"; ObjectID = "EaL-hZ-8qa"; */
17 | "EaL-hZ-8qa.ibExternalAccessibilityDescription" = "Dettagli risultato";
18 |
19 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "kEl-ZX-dAp"; */
20 | "kEl-ZX-dAp.headerCell.title" = "Titolo";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "L1K-5d-J2y"; */
23 | "L1K-5d-J2y.headerCell.title" = "Durata";
24 |
25 | /* Class = "NSTableColumn"; headerCell.title = "Confirmations"; ObjectID = "NUF-4K-8JF"; */
26 | "NUF-4K-8JF.headerCell.title" = "Conferme";
27 |
28 | /* Class = "NSTableColumn"; headerCell.title = "Chapters"; ObjectID = "O5Q-ih-ipB"; */
29 | "O5Q-ih-ipB.headerCell.title" = "Capitoli";
30 |
31 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "QM5-jw-kZn"; */
32 | "QM5-jw-kZn.title" = "Annulla";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Time"; ObjectID = "UaF-b6-Y6G"; */
35 | "UaF-b6-Y6G.headerCell.title" = "Tempo";
36 |
37 | /* Class = "NSTextFieldCell"; title = "Progress status"; ObjectID = "xUb-i4-9A1"; */
38 | "xUb-i4-9A1.title" = "Stato progresso";
39 |
40 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/ArtworkSelector.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Load more artwork..."; ObjectID = "40h-Rv-m31"; */
2 | "40h-Rv-m31.title" = "加载更多插图…";
3 |
4 | /* Class = "NSSlider"; ibExternalAccessibilityDescription = "Zoom"; ObjectID = "fMj-Ew-Qej"; */
5 | "fMj-Ew-Qej.ibExternalAccessibilityDescription" = "缩放";
6 |
7 | /* Class = "NSButtonCell"; title = "Set as artwork"; ObjectID = "rMb-PC-yTA"; */
8 | "rMb-PC-yTA.title" = "设为插图";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Progress status"; ObjectID = "TbL-2H-ra9"; */
11 | "TbL-2H-ra9.title" = "进度状态";
12 |
13 | /* Class = "NSButtonCell"; title = "None"; ObjectID = "UDG-fN-bQH"; */
14 | "UDG-fN-bQH.title" = "无";
15 |
16 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/FileImportController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Import Metadata"; ObjectID = "0dA-so-rlU"; */
2 | "0dA-so-rlU.title" = "导入元数据";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Select tracks:"; ObjectID = "1JV-df-zeq"; */
5 | "1JV-df-zeq.title" = "选择轨道:";
6 |
7 | /* Class = "NSTextFieldCell"; title = "0"; ObjectID = "2LD-y7-Ko1"; */
8 | "2LD-y7-Ko1.title" = "0";
9 |
10 | /* Class = "NSTableColumn"; headerCell.title = "Id"; ObjectID = "a2Q-90-iMO"; */
11 | "a2Q-90-iMO.headerCell.title" = "ID";
12 |
13 | /* Class = "NSMenuItem"; title = "Check only tracks with the same language"; ObjectID = "D3Y-pV-hxZ"; */
14 | "D3Y-pV-hxZ.title" = "仅选择相同语言的轨道";
15 |
16 | /* Class = "NSTableColumn"; headerCell.title = "Language"; ObjectID = "dyL-5A-jbn"; */
17 | "dyL-5A-jbn.headerCell.title" = "语言";
18 |
19 | /* Class = "NSMenuItem"; title = "Check"; ObjectID = "GIM-Js-R4l"; */
20 | "GIM-Js-R4l.title" = "选择";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "jac-jE-VHr"; */
23 | "jac-jE-VHr.headerCell.title" = "持续时间";
24 |
25 | /* Class = "NSTextFieldCell"; title = "Info"; ObjectID = "JH3-2P-Na2"; */
26 | "JH3-2P-Na2.title" = "简介";
27 |
28 | /* Class = "NSTextFieldCell"; title = "Lang"; ObjectID = "KM9-Op-UNe"; */
29 | "KM9-Op-UNe.title" = "语言";
30 |
31 | /* Class = "NSTextFieldCell"; title = "id"; ObjectID = "Nrs-BO-n8T"; */
32 | "Nrs-BO-n8T.title" = "id";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "oS0-t5-87P"; */
35 | "oS0-t5-87P.headerCell.title" = "名称";
36 |
37 | /* Class = "NSButtonCell"; title = "Add"; ObjectID = "QCb-5J-Vfs"; */
38 | "QCb-5J-Vfs.title" = "添加";
39 |
40 | /* Class = "NSTableColumn"; headerCell.title = "Info"; ObjectID = "qRv-Tq-YMF"; */
41 | "qRv-Tq-YMF.headerCell.title" = "简介";
42 |
43 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "vW6-FN-zyM"; */
44 | "vW6-FN-zyM.title" = "取消";
45 |
46 | /* Class = "NSMenuItem"; title = "Uncheck"; ObjectID = "w6q-DP-C0O"; */
47 | "w6q-DP-C0O.title" = "取消选择";
48 |
49 | /* Class = "NSTableColumn"; headerCell.title = "Action"; ObjectID = "zFW-wr-9sg"; */
50 | "zFW-wr-9sg.headerCell.title" = "行为";
51 |
52 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/GeneralPrefsViewController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Middle"; ObjectID = "2o1-dB-mt1"; */
2 | "2o1-dB-mt1.title" = "中间处";
3 |
4 | /* Class = "NSButtonCell"; title = "Automatically check for update daily"; ObjectID = "2Pf-pq-4IX"; */
5 | "2Pf-pq-4IX.title" = "每天自动检查更新";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Beginning"; ObjectID = "3Vs-qA-7Z6"; */
8 | "3Vs-qA-7Z6.title" = "开始处";
9 |
10 | /* Class = "NSButtonCell"; title = "Create Preview Images at position:"; ObjectID = "84"; */
11 | "84.title" = "在所选位置创建章节预览:";
12 |
13 | /* Class = "NSTextFieldCell"; title = "Chapters:"; ObjectID = "85"; */
14 | "85.title" = "章节:";
15 |
16 | /* Class = "NSButtonCell"; title = "Remember Size"; ObjectID = "86"; */
17 | "86.title" = "记住尺寸";
18 |
19 | /* Class = "NSButtonCell"; title = "Show open panel"; ObjectID = "87"; */
20 | "87.title" = "显示“打开”面板";
21 |
22 | /* Class = "NSTextFieldCell"; title = "Window:"; ObjectID = "88"; */
23 | "88.title" = "窗口:";
24 |
25 | /* Class = "NSTextFieldCell"; title = "At Launch:"; ObjectID = "89"; */
26 | "89.title" = "启动时:";
27 |
28 | /* Class = "NSButtonCell"; title = "Clear recent searches"; ObjectID = "134"; */
29 | "134.title" = "清除最近搜索记录";
30 |
31 | /* Class = "NSButtonCell"; title = "Delete cached metadata"; ObjectID = "137"; */
32 | "137.title" = "删除元数据缓存";
33 |
34 | /* Class = "NSTextFieldCell"; title = "Privacy:"; ObjectID = "140"; */
35 | "140.title" = "隐私:";
36 |
37 | /* Class = "NSTextFieldCell"; title = "Show ratings for:"; ObjectID = "207"; */
38 | "207.title" = "显示分级:";
39 |
40 | /* Class = "NSTextFieldCell"; title = "USA ratings are always shown."; ObjectID = "250"; */
41 | "250.title" = "将始终显示美国的分级选项。";
42 |
43 | /* Class = "NSTextFieldCell"; title = "End"; ObjectID = "He0-rl-DBi"; */
44 | "He0-rl-DBi.title" = "结尾处";
45 |
46 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle name */
2 | "CFBundleName" = "Subler";
3 |
4 | /* (No Comment) */
5 | "Matroska video" = "Matroska 视频";
6 |
7 | /* Privacy - AppleEvents Sending Usage Description */
8 | "NSAppleEventsUsageDescription" = "Subler 需要将电影添加到 iTunes 或“电视”的访问权限";
9 |
10 | /* Copyright (human-readable) */
11 | "NSHumanReadableCopyright" = "Copyright © 2009-2025, Damiano Galassi";
12 |
13 | /* (No Comment) */
14 | "SRT Subtitles" = "SRT 字幕";
15 |
16 | /* (No Comment) */
17 | "SSA Subtitles" = "SSA 字幕";
18 |
19 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/MediaTagsController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSButtonCell"; title = "Check"; ObjectID = "7h1-sO-aUd"; */
2 | "7h1-sO-aUd.title" = "选择";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Media tags:"; ObjectID = "xXI-Cs-cBg"; */
5 | "xXI-Cs-cBg.title" = "媒体标记:";
6 |
7 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/MetadataSearch.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Metadata Provider"; ObjectID = "0aO-Wz-ASZ"; */
2 | "0aO-Wz-ASZ.ibExternalAccessibilityDescription" = "元数据提供方";
3 |
4 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Language"; ObjectID = "4yY-id-JNb"; */
5 | "4yY-id-JNb.ibExternalAccessibilityDescription" = "语言";
6 |
7 | /* Class = "NSButtonCell"; title = "Search"; ObjectID = "5Mu-cI-Uiu"; */
8 | "5Mu-cI-Uiu.title" = "搜索";
9 |
10 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Result details"; ObjectID = "7Te-u0-Sax"; */
11 | "7Te-u0-Sax.ibExternalAccessibilityDescription" = "详细结果";
12 |
13 | /* Class = "NSTabViewItem"; label = "Movie"; ObjectID = "apc-8c-iyM"; */
14 | "apc-8c-iyM.label" = "电影";
15 |
16 | /* Class = "NSTableColumn"; headerCell.title = "Value"; ObjectID = "d9Q-FE-uuK"; */
17 | "d9Q-FE-uuK.headerCell.title" = "值";
18 |
19 | /* Class = "NSMenuItem"; title = "TheMovieDB"; ObjectID = "FoR-26-u9n"; */
20 | "FoR-26-u9n.title" = "TheMovieDB";
21 |
22 | /* Class = "NSTabViewItem"; label = "TV Episode"; ObjectID = "GPk-3A-rQI"; */
23 | "GPk-3A-rQI.label" = "电视剧集";
24 |
25 | /* Class = "NSTextFieldCell"; title = "Progress status"; ObjectID = "gYx-cY-5Xj"; */
26 | "gYx-cY-5Xj.title" = "进度状态";
27 |
28 | /* Class = "NSButtonCell"; title = "Search"; ObjectID = "HF1-WK-lv1"; */
29 | "HF1-WK-lv1.title" = "搜索";
30 |
31 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Search results"; ObjectID = "IDz-Ox-2sW"; */
32 | "IDz-Ox-2sW.ibExternalAccessibilityDescription" = "搜索结果";
33 |
34 | /* Class = "NSMenuItem"; title = "iTunes Store"; ObjectID = "j44-FV-Lpy"; */
35 | "j44-FV-Lpy.title" = "iTunes Store";
36 |
37 | /* Class = "NSMenuItem"; title = "TheMovieDB"; ObjectID = "KpX-If-oKC"; */
38 | "KpX-If-oKC.title" = "TheMovieDB";
39 |
40 | /* Class = "NSTextFieldCell"; title = "Season #"; ObjectID = "kz7-mH-DuT"; */
41 | "kz7-mH-DuT.title" = "季";
42 |
43 | /* Class = "NSTextFieldCell"; title = "TV Show:"; ObjectID = "lE4-J1-ySV"; */
44 | "lE4-J1-ySV.title" = "电视节目:";
45 |
46 | /* Class = "NSMenuItem"; title = "iTunes Store"; ObjectID = "nn6-mR-Bh1"; */
47 | "nn6-mR-Bh1.title" = "iTunes Store";
48 |
49 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "PJC-dF-B1z"; */
50 | "PJC-dF-B1z.title" = "取消";
51 |
52 | /* Class = "NSButtonCell"; title = "Add"; ObjectID = "PqB-NK-OtT"; */
53 | "PqB-NK-OtT.title" = "添加";
54 |
55 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Language"; ObjectID = "qsS-B6-c2q"; */
56 | "qsS-B6-c2q.ibExternalAccessibilityDescription" = "语言";
57 |
58 | /* Class = "NSPopUpButton"; ibExternalAccessibilityDescription = "Metadata provider"; ObjectID = "UTG-O0-5RG"; */
59 | "UTG-O0-5RG.ibExternalAccessibilityDescription" = "元数据提供方";
60 |
61 | /* Class = "NSTextFieldCell"; title = "Movie:"; ObjectID = "uyt-vh-nv6"; */
62 | "uyt-vh-nv6.title" = "电影:";
63 |
64 | /* Class = "NSTableColumn"; headerCell.title = "Annotation"; ObjectID = "XgL-ec-DEt"; */
65 | "XgL-ec-DEt.headerCell.title" = "注释";
66 |
67 | /* Class = "NSMenuItem"; title = "TheTVDB"; ObjectID = "xjQ-ex-5kU"; */
68 | "xjQ-ex-5kU.title" = "TheTVDB";
69 |
70 | /* Class = "NSTextFieldCell"; title = "Episode #"; ObjectID = "Zik-QU-m81"; */
71 | "Zik-QU-m81.title" = "剧集";
72 |
73 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "ZZg-QL-MyD"; */
74 | "ZZg-QL-MyD.headerCell.title" = "标题";
75 |
76 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/PrefsWindowController.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Preferences"; ObjectID = "1"; */
2 | "1.title" = "偏好设置";
3 |
4 | /* Class = "NSToolbarItem"; label = "General"; ObjectID = "5r6-9s-apQ"; */
5 | "5r6-9s-apQ.label" = "通用";
6 |
7 | /* Class = "NSToolbarItem"; paletteLabel = "General"; ObjectID = "5r6-9s-apQ"; */
8 | "5r6-9s-apQ.paletteLabel" = "通用";
9 |
10 | /* Class = "NSToolbarItem"; label = "OCR"; ObjectID = "btg-Uy-o7I"; */
11 | "btg-Uy-o7I.label" = "OCR";
12 |
13 | /* Class = "NSToolbarItem"; paletteLabel = "OCR"; ObjectID = "btg-Uy-o7I"; */
14 | "btg-Uy-o7I.paletteLabel" = "OCR";
15 |
16 | /* Class = "NSToolbarItem"; label = "Sets"; ObjectID = "PFq-0J-qih"; */
17 | "PFq-0J-qih.label" = "预设";
18 |
19 | /* Class = "NSToolbarItem"; paletteLabel = "Sets"; ObjectID = "PFq-0J-qih"; */
20 | "PFq-0J-qih.paletteLabel" = "预设";
21 |
22 | /* Class = "NSToolbarItem"; label = "Advanced"; ObjectID = "udf-m4-mG8"; */
23 | "udf-m4-mG8.label" = "高级";
24 |
25 | /* Class = "NSToolbarItem"; paletteLabel = "Advanced"; ObjectID = "udf-m4-mG8"; */
26 | "udf-m4-mG8.paletteLabel" = "高级";
27 |
28 | /* Class = "NSToolbarItem"; label = "Filename"; ObjectID = "uxW-fx-zpe"; */
29 | "uxW-fx-zpe.label" = "文件名";
30 |
31 | /* Class = "NSToolbarItem"; paletteLabel = "Filename"; ObjectID = "uxW-fx-zpe"; */
32 | "uxW-fx-zpe.paletteLabel" = "文件名";
33 |
34 | /* Class = "NSToolbarItem"; label = "Metadata"; ObjectID = "Z2w-05-k1g"; */
35 | "Z2w-05-k1g.label" = "元数据";
36 |
37 | /* Class = "NSToolbarItem"; paletteLabel = "Metadata"; ObjectID = "Z2w-05-k1g"; */
38 | "Z2w-05-k1g.paletteLabel" = "元数据";
39 |
40 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/Queue.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Queue"; ObjectID = "1"; */
2 | "1.title" = "任务队列";
3 |
4 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Queue"; ObjectID = "7"; */
5 | "7.ibExternalAccessibilityDescription" = "任务队列";
6 |
7 | /* Class = "NSMenuItem"; title = "Reveal in Finder"; ObjectID = "8gi-57-i6u"; */
8 | "8gi-57-i6u.title" = "在访达中显示";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Queue items"; ObjectID = "13"; */
11 | "13.title" = "队列项";
12 |
13 | /* Class = "NSMenuItem"; title = "Remove from queue"; ObjectID = "79"; */
14 | "79.title" = "从队列中移除";
15 |
16 | /* Class = "NSMenuItem"; title = "Remove completed items"; ObjectID = "86"; */
17 | "86.title" = "移除已完成项";
18 |
19 | /* Class = "NSButton"; ibExternalAccessibilityDescription = "Info"; ObjectID = "o98-wM-YAQ"; */
20 | "o98-wM-YAQ.ibExternalAccessibilityDescription" = "简介";
21 |
22 | /* Class = "NSButton"; ibShadowedToolTip = "Show item info"; ObjectID = "o98-wM-YAQ"; */
23 | "o98-wM-YAQ.ibShadowedToolTip" = "显示项目简介";
24 |
25 | /* Class = "NSMenuItem"; title = "Edit…"; ObjectID = "qHz-Zh-l5L"; */
26 | "qHz-Zh-l5L.title" = "编辑…";
27 |
28 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/QueueItem.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTextFieldCell"; title = "Actions:"; ObjectID = "4B2-1n-ouM"; */
2 | "4B2-1n-ouM.title" = "行为:";
3 |
4 | /* Class = "NSTextFieldCell"; title = "Source:"; ObjectID = "9De-A4-Oas"; */
5 | "9De-A4-Oas.title" = "文件源:";
6 |
7 | /* Class = "NSTextFieldCell"; title = "Destination:"; ObjectID = "9R2-ND-o8w"; */
8 | "9R2-ND-o8w.title" = "目标路径:";
9 |
10 | /* Class = "NSButtonCell"; title = "Edit…"; ObjectID = "cEO-ol-OLW"; */
11 | "cEO-ol-OLW.title" = "编辑…";
12 |
13 | /* Class = "CocoaBindingsConnection"; ibShadowedDisplayPattern = "%{value1}@"; ObjectID = "YsQ-nM-zxb"; */
14 | "YsQ-nM-zxb.ibShadowedDisplayPattern" = "%{value1}@";
15 |
16 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/SBActivityWindow.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSWindow"; title = "Message Log"; ObjectID = "F0z-JX-Cv5"; */
2 | "F0z-JX-Cv5.title" = "日志信息";
3 |
4 | /* Class = "NSButtonCell"; title = "Clear"; ObjectID = "h1X-Ni-exQ"; */
5 | "h1X-Ni-exQ.title" = "清除";
6 |
7 |
--------------------------------------------------------------------------------
/zh-Hans.lproj/SBChapterSearch.strings:
--------------------------------------------------------------------------------
1 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Search results"; ObjectID = "1tx-ei-5Gq"; */
2 | "1tx-ei-5Gq.ibExternalAccessibilityDescription" = "搜索结果";
3 |
4 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "3iF-NJ-e1F"; */
5 | "3iF-NJ-e1F.headerCell.title" = "标题";
6 |
7 | /* Class = "NSButtonCell"; title = "Add"; ObjectID = "6fG-qc-eA5"; */
8 | "6fG-qc-eA5.title" = "添加";
9 |
10 | /* Class = "NSTextFieldCell"; title = "Title:"; ObjectID = "b8H-Nd-479"; */
11 | "b8H-Nd-479.title" = "标题:";
12 |
13 | /* Class = "NSButtonCell"; title = "Search"; ObjectID = "CPc-iU-dzR"; */
14 | "CPc-iU-dzR.title" = "搜索";
15 |
16 | /* Class = "NSTableView"; ibExternalAccessibilityDescription = "Result details"; ObjectID = "EaL-hZ-8qa"; */
17 | "EaL-hZ-8qa.ibExternalAccessibilityDescription" = "详细结果";
18 |
19 | /* Class = "NSTableColumn"; headerCell.title = "Title"; ObjectID = "kEl-ZX-dAp"; */
20 | "kEl-ZX-dAp.headerCell.title" = "标题";
21 |
22 | /* Class = "NSTableColumn"; headerCell.title = "Duration"; ObjectID = "L1K-5d-J2y"; */
23 | "L1K-5d-J2y.headerCell.title" = "持续时间";
24 |
25 | /* Class = "NSTableColumn"; headerCell.title = "Confirmations"; ObjectID = "NUF-4K-8JF"; */
26 | "NUF-4K-8JF.headerCell.title" = "认可度";
27 |
28 | /* Class = "NSTableColumn"; headerCell.title = "Chapters"; ObjectID = "O5Q-ih-ipB"; */
29 | "O5Q-ih-ipB.headerCell.title" = "章节";
30 |
31 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "QM5-jw-kZn"; */
32 | "QM5-jw-kZn.title" = "取消";
33 |
34 | /* Class = "NSTableColumn"; headerCell.title = "Time"; ObjectID = "UaF-b6-Y6G"; */
35 | "UaF-b6-Y6G.headerCell.title" = "时间";
36 |
37 | /* Class = "NSTextFieldCell"; title = "Progress status"; ObjectID = "xUb-i4-9A1"; */
38 | "xUb-i4-9A1.title" = "进度状态";
39 |
40 |
--------------------------------------------------------------------------------