ibtoolTranslation 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +6 -0
- data/Guardfile +9 -0
- data/LICENSE.txt +22 -0
- data/Makefile +3 -0
- data/README.md +58 -0
- data/Rakefile +1 -0
- data/bin/ibtoolTranslation +33 -0
- data/ibtoolTranslation.gemspec +24 -0
- data/lib/ibtoolTranslation/version.rb +3 -0
- data/lib/ibtoolTranslation.rb +90 -0
- data/spec/ibtoolTranslation_spec.rb +54 -0
- data/storyboards/en.lproj/Main.storyboard +279 -0
- data/storyboards/en.lproj/Main.strings +0 -0
- data/storyboards/fr.lproj/Main.storyboard +279 -0
- data/storyboards/fr.lproj/Main.strings +0 -0
- data/storyboards/fr.lproj/Translation.strings +0 -0
- data/storyboards/ja.lproj/Main.storyboard +279 -0
- data/storyboards/ja.lproj/Main.strings +0 -0
- data/storyboards/ja.lproj/Translation.strings +0 -0
- metadata +108 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 90a99821ce95e383eef6c7ca8b68c3a7bf059b22
|
4
|
+
data.tar.gz: a5a7293f843bd517113abc6e8bddb5469da483ab
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 700ca1e067c43fac5a6c72267e47a0ea9bab3d9bb0be0dc13fa60b5815c847f68c379baed754a27f7e1e83cc5b9370bb2a6048b1db96bb742b985fd70f45a8d0
|
7
|
+
data.tar.gz: 4daf6e37e87a0747929a95cd107374a7d07fcd9670d904d116aae53f4197525810e3284ea3e888727294de0073458c65116f8af96588c72874b533fc7b69ef6e
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 akuraru
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Makefile
ADDED
data/README.md
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
# IbtoolTranslation
|
2
|
+
|
3
|
+
This is the script that can be used to internationalize the storyboard.
|
4
|
+
|
5
|
+
You edit the Translation.strings that is generated when hit the following command. The typing the same command again to be translated.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
gem 'ibtool_translation'
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install ibtool_translation
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
1) Generate "Translation.strings" file.
|
24
|
+
|
25
|
+
``` sh
|
26
|
+
ruby Translation.rb path/to/your_storyboard_directory/ <translate from lang> <translate to lang>
|
27
|
+
```
|
28
|
+
|
29
|
+
2) Edit "Translation.strings" file.
|
30
|
+
|
31
|
+
```
|
32
|
+
"pre-text" = "post-text";
|
33
|
+
"Date" = "日時";
|
34
|
+
"Delete" = "削除";
|
35
|
+
```
|
36
|
+
|
37
|
+
3) Again run (1) command.
|
38
|
+
|
39
|
+
``` sh
|
40
|
+
ruby Translation.rb path/to/your_storyboard_directory/ <translate from lang> <translate to lang>
|
41
|
+
```
|
42
|
+
|
43
|
+
### Example
|
44
|
+
|
45
|
+
e.g.) Translate storyboard files from English to Japanese.
|
46
|
+
|
47
|
+
``` sh
|
48
|
+
ruby Translation.rb ExampleProject/storyboard/ en ja
|
49
|
+
```
|
50
|
+
|
51
|
+
|
52
|
+
## Contributing
|
53
|
+
|
54
|
+
1. Fork it ( http://github.com/<my-github-username>/ibtool_translation/fork )
|
55
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
56
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
57
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
58
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "ibtoolTranslation/version"
|
4
|
+
require "ibtoolTranslation"
|
5
|
+
require "thor"
|
6
|
+
|
7
|
+
module IbtoolTranslation
|
8
|
+
#= IbtoolTranslation CLI
|
9
|
+
class CLI < Thor
|
10
|
+
class_option :help, :type => :boolean, :aliases => '-h', :desc => 'help message.'
|
11
|
+
class_option :version, :type => :boolean, :desc => 'version'
|
12
|
+
default_task :execute
|
13
|
+
|
14
|
+
option :dir, :type => :string, :aliases => '-d'
|
15
|
+
option :from, :type => :string , :aliases => '-f'
|
16
|
+
option :to, :type => :array, :aliases => '-t'
|
17
|
+
desc "execute", "show dialog with title, message"
|
18
|
+
def execute
|
19
|
+
if options[:version]
|
20
|
+
self.version
|
21
|
+
else
|
22
|
+
IbtoolTranslation::Core.new.func(options[:dir], options[:from], options[:to])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "version", "version"
|
27
|
+
def version
|
28
|
+
p IbtoolTranslation::VERSION
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
IbtoolTranslation::CLI.start(ARGV)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'ibtoolTranslation/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "ibtoolTranslation"
|
8
|
+
spec.version = IbtoolTranslation::VERSION
|
9
|
+
spec.authors = ["akuraru"]
|
10
|
+
spec.email = ["akuraru@gmail.com"]
|
11
|
+
spec.summary = %q{Write a short summary. Required.}
|
12
|
+
spec.description = %q{Write a longer description. Optional.}
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_runtime_dependency "thor", "~> 0.18.1"
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
23
|
+
spec.add_development_dependency "rake"
|
24
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require "ibtoolTranslation/version"
|
2
|
+
require 'kconv'
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module IbtoolTranslation
|
6
|
+
class Core
|
7
|
+
def self.hi
|
8
|
+
puts "Hello world!"
|
9
|
+
end
|
10
|
+
|
11
|
+
def function()
|
12
|
+
dirName = ARGV[0]
|
13
|
+
sourceDir = dirName + ARGV[1] + ".lproj"
|
14
|
+
lps = ARGV[2..-1]
|
15
|
+
end
|
16
|
+
def func(dirName, sourceDir, lps)
|
17
|
+
storyboards = self.storyboards sourceDir
|
18
|
+
|
19
|
+
lps.each {|lp|
|
20
|
+
lproj = dirName + lp + ".lproj"
|
21
|
+
FileUtils.mkdir_p(lproj) unless FileTest.exist?(lproj)
|
22
|
+
|
23
|
+
transText = self.transText("#{lproj}/Translation.strings")
|
24
|
+
baseData = self.baseDataForTransText(transText)
|
25
|
+
storyboards.each { |fileName|
|
26
|
+
`ibtool --generate-stringsfile #{lproj}/#{fileName}.strings #{sourceDir}/#{fileName}.storyboard`
|
27
|
+
addtionData = self.addtionData("#{lproj}/#{fileName}.strings")
|
28
|
+
aData = addtionData.select{|f| baseData.include?(f) == false}
|
29
|
+
transText = transText + aData.map{|f| "\"#{f}\";\n"}.join("")
|
30
|
+
}
|
31
|
+
self.writeTransText("#{lproj}/Translation.strings", transText)
|
32
|
+
storyboards.each { |fileName|
|
33
|
+
self.fun2(lproj, fileName, transText)
|
34
|
+
`ibtool --write #{lproj}/#{fileName}.storyboard -d #{lproj}/#{fileName}.strings #{sourceDir}/#{fileName}.storyboard`
|
35
|
+
puts fileName
|
36
|
+
}
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
def fun2(lproj, fileName, transText)
|
41
|
+
translationData = self.translationData("#{lproj}/#{fileName}.strings")
|
42
|
+
translationDict = self.translationDict(transText)
|
43
|
+
|
44
|
+
aData = translate(translationData, translationDict)
|
45
|
+
transText = aData.map{|f| "\"#{f[0]}\" = \"#{f[1]}\";\n"}.join("")
|
46
|
+
File.open("#{lproj}/#{fileName}.strings", "w:UTF-16"){|f| f.write transText}
|
47
|
+
end
|
48
|
+
def translate(translationData, translationDict)
|
49
|
+
translationData.map{|arr|
|
50
|
+
(translationDict.key? arr[1]) ? [arr[0], translationDict[arr[1]]] : arr
|
51
|
+
}
|
52
|
+
end
|
53
|
+
def translationDict(transText)
|
54
|
+
Hash[*(transText.scan(/"(.*)"\s*=\s*"(.*)";?\s*\n/).flatten)]
|
55
|
+
end
|
56
|
+
def translationData(fileName)
|
57
|
+
self.readFile(fileName).scan(/"(.*)" *= *"(.*)";\n/).uniq
|
58
|
+
end
|
59
|
+
def writeTransText(fileName, transText)
|
60
|
+
File.open(fileName, "w:UTF-16"){|f| f.write transText}
|
61
|
+
end
|
62
|
+
def baseDataForTransText(transText)
|
63
|
+
(transText.scan(/"(.*)"\s*=\s*".*";?\s*\n/) + transText.scan(/"(.*)";?\s*\n/)).flatten
|
64
|
+
end
|
65
|
+
def transText(fileName)
|
66
|
+
self.readFile(fileName)
|
67
|
+
end
|
68
|
+
def addtionData(fileName)
|
69
|
+
self.readFile(fileName).scan(/".*" *= *"(.*)";\n/).uniq.flatten
|
70
|
+
end
|
71
|
+
def storyboards(sourceDir)
|
72
|
+
Dir.open(sourceDir).map {|f|
|
73
|
+
f.gsub(/(.*)\.storyboard/, '\1').gsub(/\w*\.\w*/, "")
|
74
|
+
}.select {|f| f != "" }
|
75
|
+
end
|
76
|
+
def readFile(fileName)
|
77
|
+
FileTest.exist?(fileName) ? File.read(fileName, :mode => "rb", :encoding => "UTF-16LE").toutf8 : ""
|
78
|
+
end
|
79
|
+
def deleteDir(dir)
|
80
|
+
Dir::glob(dir + "**/").sort {
|
81
|
+
|a,b| b.split('/').size <=> a.split('/').size
|
82
|
+
}.each {|d|
|
83
|
+
Dir::foreach(d) {|f|
|
84
|
+
File::delete(d+f) if ! (/\.+$/ =~ f)
|
85
|
+
}
|
86
|
+
Dir::rmdir(d)
|
87
|
+
}
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require './lib/IbtoolTranslation'
|
2
|
+
|
3
|
+
describe IbtoolTranslation::Core, "load" do
|
4
|
+
baseDataArray = ["B", "hoge\\npiyo\\nfuga", "to D", "numberOfLines : 2", "D", "NumberOfLines", "Root View Controller", "C", "numberOfLines : 1", "Beyond Segue", "numberOfLines : 0"]
|
5
|
+
baseDataText = '"B";
|
6
|
+
"hoge\npiyo\nfuga";
|
7
|
+
"to D";
|
8
|
+
"numberOfLines : 2";
|
9
|
+
"D";
|
10
|
+
"NumberOfLines";
|
11
|
+
"Root View Controller";
|
12
|
+
"C";
|
13
|
+
"numberOfLines : 1";
|
14
|
+
"Beyond Segue";
|
15
|
+
"numberOfLines : 0";
|
16
|
+
'
|
17
|
+
|
18
|
+
context "func" do
|
19
|
+
before do
|
20
|
+
@i = IbtoolTranslation::Core.new
|
21
|
+
@i.deleteDir "./storyboards/ja.lproj/"
|
22
|
+
@i.func("./storyboards/", "./storyboards/en.lproj/", ["ja"])
|
23
|
+
end
|
24
|
+
it "ja transText is " do
|
25
|
+
IbtoolTranslation::Core.new.transText("./storyboards/ja.lproj/Translation.strings").should == baseDataText
|
26
|
+
end
|
27
|
+
end
|
28
|
+
it "storyboards" do
|
29
|
+
IbtoolTranslation::Core.new.storyboards("./storyboards/en.lproj/").should == ["Main"]
|
30
|
+
end
|
31
|
+
it "addtionData" do
|
32
|
+
IbtoolTranslation::Core.new.addtionData("./storyboards/en.lproj/Main.strings").should == baseDataArray
|
33
|
+
end
|
34
|
+
it "non transText is empty" do
|
35
|
+
IbtoolTranslation::Core.new.transText("./storyboards/en.lproj/Translation.strings").should == ""
|
36
|
+
end
|
37
|
+
it "ja transText is " do
|
38
|
+
IbtoolTranslation::Core.new.transText("./storyboards/ja.lproj/Translation.strings").should == baseDataText
|
39
|
+
end
|
40
|
+
it "baseDataForTransText" do
|
41
|
+
IbtoolTranslation::Core.new.baseDataForTransText(baseDataText).should == baseDataArray
|
42
|
+
end
|
43
|
+
it "translationData" do
|
44
|
+
IbtoolTranslation::Core.new.translationData("./storyboards/fr.lproj/Translation.strings").should == [["B", "β"], ["C", "γ"]]
|
45
|
+
end
|
46
|
+
it "translationDict" do
|
47
|
+
i = IbtoolTranslation::Core.new
|
48
|
+
t = i.transText("./storyboards/fr.lproj/Translation.strings")
|
49
|
+
i.translationDict(t).should == {"B" => "β", "C" => "γ"}
|
50
|
+
end
|
51
|
+
it "translate" do
|
52
|
+
IbtoolTranslation::Core.new.translate([["x", "A"], ["y", "B"]], {"B" => "β", "C" => "γ"}).should == [["x", "A"], ["y", "β"]]
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,279 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="4514" systemVersion="13B3116" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="W4H-FJ-WP2">
|
3
|
+
<dependencies>
|
4
|
+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
5
|
+
</dependencies>
|
6
|
+
<scenes>
|
7
|
+
<!--Table View Controller - Root View Controller-->
|
8
|
+
<scene sceneID="G8d-y9-IpG">
|
9
|
+
<objects>
|
10
|
+
<tableViewController id="qKe-kL-ggu" sceneMemberID="viewController">
|
11
|
+
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="YPE-tX-y7Y">
|
12
|
+
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
|
13
|
+
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
14
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
15
|
+
<sections>
|
16
|
+
<tableViewSection id="OJ2-Vk-BEm">
|
17
|
+
<cells>
|
18
|
+
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" textLabel="i4d-Fw-rmD" style="IBUITableViewCellStyleDefault" id="3bf-ye-zyF">
|
19
|
+
<rect key="frame" x="0.0" y="64" width="320" height="44"/>
|
20
|
+
<autoresizingMask key="autoresizingMask"/>
|
21
|
+
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="3bf-ye-zyF" id="K53-sk-I1T">
|
22
|
+
<rect key="frame" x="0.0" y="0.0" width="287" height="43"/>
|
23
|
+
<autoresizingMask key="autoresizingMask"/>
|
24
|
+
<subviews>
|
25
|
+
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="NumberOfLines" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="i4d-Fw-rmD">
|
26
|
+
<rect key="frame" x="15" y="0.0" width="270" height="43"/>
|
27
|
+
<autoresizingMask key="autoresizingMask"/>
|
28
|
+
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
29
|
+
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
30
|
+
<nil key="highlightedColor"/>
|
31
|
+
</label>
|
32
|
+
</subviews>
|
33
|
+
</tableViewCellContentView>
|
34
|
+
<connections>
|
35
|
+
<segue destination="dPf-DS-gFX" kind="push" id="dJ9-i2-EHa"/>
|
36
|
+
</connections>
|
37
|
+
</tableViewCell>
|
38
|
+
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="qNj-A8-wwY" style="IBUITableViewCellStyleDefault" id="Sjg-KH-mCr">
|
39
|
+
<rect key="frame" x="0.0" y="108" width="320" height="44"/>
|
40
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
41
|
+
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Sjg-KH-mCr" id="Kg4-k8-nYF">
|
42
|
+
<rect key="frame" x="0.0" y="0.0" width="287" height="43"/>
|
43
|
+
<autoresizingMask key="autoresizingMask"/>
|
44
|
+
<subviews>
|
45
|
+
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Beyond Segue" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="qNj-A8-wwY">
|
46
|
+
<rect key="frame" x="15" y="0.0" width="270" height="43"/>
|
47
|
+
<autoresizingMask key="autoresizingMask"/>
|
48
|
+
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
49
|
+
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
50
|
+
<nil key="highlightedColor"/>
|
51
|
+
</label>
|
52
|
+
</subviews>
|
53
|
+
</tableViewCellContentView>
|
54
|
+
<connections>
|
55
|
+
<segue destination="Bbu-Ps-kCX" kind="push" id="DGv-Aj-UFH"/>
|
56
|
+
</connections>
|
57
|
+
</tableViewCell>
|
58
|
+
</cells>
|
59
|
+
</tableViewSection>
|
60
|
+
</sections>
|
61
|
+
</tableView>
|
62
|
+
<navigationItem key="navigationItem" title="Root View Controller" id="j2k-px-61e"/>
|
63
|
+
<connections>
|
64
|
+
<segue destination="8NF-7x-eCV" kind="push" id="IUM-ey-N7Z"/>
|
65
|
+
</connections>
|
66
|
+
</tableViewController>
|
67
|
+
<placeholder placeholderIdentifier="IBFirstResponder" id="Vlp-dO-GoL" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
68
|
+
</objects>
|
69
|
+
<point key="canvasLocation" x="-52" y="91"/>
|
70
|
+
</scene>
|
71
|
+
<!--View Controller-->
|
72
|
+
<scene sceneID="7IZ-5y-tjp">
|
73
|
+
<objects>
|
74
|
+
<viewController id="dPf-DS-gFX" customClass="ViewController" sceneMemberID="viewController">
|
75
|
+
<layoutGuides>
|
76
|
+
<viewControllerLayoutGuide type="top" id="r8f-2z-uKL"/>
|
77
|
+
<viewControllerLayoutGuide type="bottom" id="pS5-GB-VdP"/>
|
78
|
+
</layoutGuides>
|
79
|
+
<view key="view" contentMode="scaleToFill" id="d9m-UX-XY2">
|
80
|
+
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
81
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
82
|
+
<subviews>
|
83
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BYa-F5-6Bd">
|
84
|
+
<rect key="frame" x="20" y="41" width="285" height="66"/>
|
85
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
86
|
+
<color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="calibratedRGB"/>
|
87
|
+
<string key="text">hoge
|
88
|
+
piyo
|
89
|
+
fuga</string>
|
90
|
+
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
91
|
+
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
92
|
+
<nil key="highlightedColor"/>
|
93
|
+
</label>
|
94
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="285" translatesAutoresizingMaskIntoConstraints="NO" id="Q7j-JV-BS6">
|
95
|
+
<rect key="frame" x="20" y="148" width="285" height="66"/>
|
96
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
97
|
+
<color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="calibratedRGB"/>
|
98
|
+
<string key="text">hoge
|
99
|
+
piyo
|
100
|
+
fuga</string>
|
101
|
+
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
102
|
+
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
103
|
+
<nil key="highlightedColor"/>
|
104
|
+
</label>
|
105
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="285" translatesAutoresizingMaskIntoConstraints="NO" id="cfA-L8-XId">
|
106
|
+
<rect key="frame" x="20" y="251" width="285" height="66"/>
|
107
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
108
|
+
<color key="backgroundColor" red="0.84705882349999995" green="0.84705882349999995" blue="0.84705882349999995" alpha="1" colorSpace="calibratedRGB"/>
|
109
|
+
<string key="text">hoge
|
110
|
+
piyo
|
111
|
+
fuga</string>
|
112
|
+
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
113
|
+
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
114
|
+
<nil key="highlightedColor"/>
|
115
|
+
</label>
|
116
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="numberOfLines : 1" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qHq-IC-lJQ">
|
117
|
+
<rect key="frame" x="10" y="12" width="142" height="21"/>
|
118
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
119
|
+
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
120
|
+
<nil key="highlightedColor"/>
|
121
|
+
</label>
|
122
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="numberOfLines : 2" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R5Y-km-7IB">
|
123
|
+
<rect key="frame" x="10" y="119" width="142" height="21"/>
|
124
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
125
|
+
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
126
|
+
<nil key="highlightedColor"/>
|
127
|
+
</label>
|
128
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="numberOfLines : 0" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zg1-nu-NGb">
|
129
|
+
<rect key="frame" x="10" y="222" width="142" height="21"/>
|
130
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
131
|
+
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
132
|
+
<nil key="highlightedColor"/>
|
133
|
+
</label>
|
134
|
+
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bbl-KF-HsK">
|
135
|
+
<rect key="frame" x="0.0" y="300" width="320" height="116"/>
|
136
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
137
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
138
|
+
</view>
|
139
|
+
</subviews>
|
140
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
141
|
+
<constraints>
|
142
|
+
<constraint firstItem="bbl-KF-HsK" firstAttribute="leading" secondItem="d9m-UX-XY2" secondAttribute="leading" id="9dH-oS-Dmv"/>
|
143
|
+
<constraint firstItem="bbl-KF-HsK" firstAttribute="top" secondItem="r8f-2z-uKL" secondAttribute="bottom" constant="300" id="M4C-y9-7N6"/>
|
144
|
+
<constraint firstAttribute="trailing" secondItem="bbl-KF-HsK" secondAttribute="trailing" id="Tf6-sB-Mnd"/>
|
145
|
+
<constraint firstItem="pS5-GB-VdP" firstAttribute="top" secondItem="bbl-KF-HsK" secondAttribute="bottom" id="yhJ-nl-YsL"/>
|
146
|
+
</constraints>
|
147
|
+
</view>
|
148
|
+
<extendedEdge key="edgesForExtendedLayout"/>
|
149
|
+
<navigationItem key="navigationItem" id="zZU-Xt-F9r"/>
|
150
|
+
<connections>
|
151
|
+
<outlet property="checkView" destination="bbl-KF-HsK" id="Orm-ax-r9q"/>
|
152
|
+
</connections>
|
153
|
+
</viewController>
|
154
|
+
<placeholder placeholderIdentifier="IBFirstResponder" id="LRy-mU-KHy" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
155
|
+
</objects>
|
156
|
+
<point key="canvasLocation" x="494" y="-968"/>
|
157
|
+
</scene>
|
158
|
+
<!--Navigation Controller-->
|
159
|
+
<scene sceneID="EJJ-XS-yT5">
|
160
|
+
<objects>
|
161
|
+
<navigationController definesPresentationContext="YES" id="W4H-FJ-WP2" sceneMemberID="viewController">
|
162
|
+
<navigationBar key="navigationBar" contentMode="scaleToFill" id="R4K-wl-pTU">
|
163
|
+
<autoresizingMask key="autoresizingMask"/>
|
164
|
+
</navigationBar>
|
165
|
+
<connections>
|
166
|
+
<segue destination="qKe-kL-ggu" kind="relationship" relationship="rootViewController" id="ujK-qc-HeL"/>
|
167
|
+
</connections>
|
168
|
+
</navigationController>
|
169
|
+
<placeholder placeholderIdentifier="IBFirstResponder" id="ZwO-hp-HaM" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
170
|
+
</objects>
|
171
|
+
<point key="canvasLocation" x="-586" y="91"/>
|
172
|
+
</scene>
|
173
|
+
<!--View Controller-->
|
174
|
+
<scene sceneID="sfR-ie-obi">
|
175
|
+
<objects>
|
176
|
+
<viewController storyboardIdentifier="C" useStoryboardIdentifierAsRestorationIdentifier="YES" id="8NF-7x-eCV" sceneMemberID="viewController">
|
177
|
+
<layoutGuides>
|
178
|
+
<viewControllerLayoutGuide type="top" id="Ub0-eC-d3R"/>
|
179
|
+
<viewControllerLayoutGuide type="bottom" id="mCe-xR-ycg"/>
|
180
|
+
</layoutGuides>
|
181
|
+
<view key="view" contentMode="scaleToFill" id="A9M-n0-kvA">
|
182
|
+
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
183
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
184
|
+
<subviews>
|
185
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="C" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pIG-ob-jFS">
|
186
|
+
<rect key="frame" x="0.0" y="0.0" width="320" height="220"/>
|
187
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
188
|
+
<fontDescription key="fontDescription" type="system" pointSize="100"/>
|
189
|
+
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
190
|
+
<nil key="highlightedColor"/>
|
191
|
+
</label>
|
192
|
+
</subviews>
|
193
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
194
|
+
</view>
|
195
|
+
<extendedEdge key="edgesForExtendedLayout" bottom="YES"/>
|
196
|
+
<navigationItem key="navigationItem" id="gTY-qx-kty"/>
|
197
|
+
<connections>
|
198
|
+
<segue destination="73V-H2-uPu" kind="push" id="glt-uI-S6F"/>
|
199
|
+
</connections>
|
200
|
+
</viewController>
|
201
|
+
<placeholder placeholderIdentifier="IBFirstResponder" id="vsy-0K-x5d" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
202
|
+
</objects>
|
203
|
+
<point key="canvasLocation" x="494" y="-288"/>
|
204
|
+
</scene>
|
205
|
+
<!--View Controller-->
|
206
|
+
<scene sceneID="839-E8-2Br">
|
207
|
+
<objects>
|
208
|
+
<viewController storyboardIdentifier="D" useStoryboardIdentifierAsRestorationIdentifier="YES" id="73V-H2-uPu" sceneMemberID="viewController">
|
209
|
+
<layoutGuides>
|
210
|
+
<viewControllerLayoutGuide type="top" id="HYe-o5-9Xc"/>
|
211
|
+
<viewControllerLayoutGuide type="bottom" id="RTJ-TJ-CiF"/>
|
212
|
+
</layoutGuides>
|
213
|
+
<view key="view" contentMode="scaleToFill" id="QHs-ip-Izx">
|
214
|
+
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
215
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
216
|
+
<subviews>
|
217
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="D" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cm9-XA-eke">
|
218
|
+
<rect key="frame" x="0.0" y="0.0" width="320" height="220"/>
|
219
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
220
|
+
<fontDescription key="fontDescription" type="system" pointSize="100"/>
|
221
|
+
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
222
|
+
<nil key="highlightedColor"/>
|
223
|
+
</label>
|
224
|
+
</subviews>
|
225
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
226
|
+
</view>
|
227
|
+
<extendedEdge key="edgesForExtendedLayout" bottom="YES"/>
|
228
|
+
<navigationItem key="navigationItem" id="wCB-0e-HIF"/>
|
229
|
+
</viewController>
|
230
|
+
<placeholder placeholderIdentifier="IBFirstResponder" id="XyR-ap-ISf" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
231
|
+
</objects>
|
232
|
+
<point key="canvasLocation" x="913" y="-288"/>
|
233
|
+
</scene>
|
234
|
+
<!--Beyond Segue View Controller-->
|
235
|
+
<scene sceneID="EkT-ip-QWf">
|
236
|
+
<objects>
|
237
|
+
<viewController id="Bbu-Ps-kCX" customClass="BeyondSegueViewController" sceneMemberID="viewController">
|
238
|
+
<layoutGuides>
|
239
|
+
<viewControllerLayoutGuide type="top" id="6HY-0V-q3D"/>
|
240
|
+
<viewControllerLayoutGuide type="bottom" id="Cfa-bD-G6A"/>
|
241
|
+
</layoutGuides>
|
242
|
+
<view key="view" contentMode="scaleToFill" id="bM1-RV-CNM">
|
243
|
+
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
244
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
245
|
+
<subviews>
|
246
|
+
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="C8a-M3-w6x">
|
247
|
+
<rect key="frame" x="145" y="256" width="30" height="30"/>
|
248
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
249
|
+
<state key="normal" title="to D">
|
250
|
+
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
251
|
+
</state>
|
252
|
+
<connections>
|
253
|
+
<action selector="touchtToD:" destination="Bbu-Ps-kCX" eventType="touchUpInside" id="FlC-gE-Fbe"/>
|
254
|
+
</connections>
|
255
|
+
</button>
|
256
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="B" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="31M-uE-y4S">
|
257
|
+
<rect key="frame" x="0.0" y="0.0" width="320" height="220"/>
|
258
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
259
|
+
<fontDescription key="fontDescription" type="system" pointSize="100"/>
|
260
|
+
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
261
|
+
<nil key="highlightedColor"/>
|
262
|
+
</label>
|
263
|
+
</subviews>
|
264
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
265
|
+
</view>
|
266
|
+
<extendedEdge key="edgesForExtendedLayout" bottom="YES"/>
|
267
|
+
<navigationItem key="navigationItem" id="Uuo-XQ-iTZ"/>
|
268
|
+
</viewController>
|
269
|
+
<placeholder placeholderIdentifier="IBFirstResponder" id="i1A-ih-j2e" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
270
|
+
</objects>
|
271
|
+
<point key="canvasLocation" x="494" y="431"/>
|
272
|
+
</scene>
|
273
|
+
</scenes>
|
274
|
+
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
275
|
+
<simulatedStatusBarMetrics key="statusBar"/>
|
276
|
+
<simulatedOrientationMetrics key="orientation"/>
|
277
|
+
<simulatedScreenMetrics key="destination"/>
|
278
|
+
</simulatedMetricsContainer>
|
279
|
+
</document>
|