100Years před 2 dny
rodič
revize
3415e33946
37 změnil soubory, kde provedl 157 přidání a 93 odebrání
  1. 2 2
      AIEmoji.xcodeproj/project.pbxproj
  2. binární
      AIEmoji/Assets.xcassets/AIList/aiList_ttp.imageset/aiList_ttp@2x.png
  3. binární
      AIEmoji/Assets.xcassets/AIList/aiList_ttp.imageset/aiList_ttp@3x.png
  4. binární
      AIEmoji/Assets.xcassets/PTP/ptp_example_image0.imageset/ptp_example_image0@2x.png
  5. binární
      AIEmoji/Assets.xcassets/PTP/ptp_example_image0.imageset/ptp_example_image0@3x.png
  6. binární
      AIEmoji/Assets.xcassets/PTP/ptp_example_image1.imageset/ptp_example_image1@2x.png
  7. binární
      AIEmoji/Assets.xcassets/PTP/ptp_example_image1.imageset/ptp_example_image1@3x.png
  8. binární
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_ActionFigure.imageset/ptp_style_ActionFigure@2x.png
  9. binární
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_ActionFigure.imageset/ptp_style_ActionFigure@3x.png
  10. binární
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_CuteCat.imageset/ptp_style_CuteCat@2x.png
  11. binární
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_CuteCat.imageset/ptp_style_CuteCat@3x.png
  12. binární
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_CuteDog.imageset/ptp_style_CuteDog@2x.png
  13. binární
      AIEmoji/Assets.xcassets/PTP/style/ptp_style_CuteDog.imageset/ptp_style_CuteDog@3x.png
  14. 22 0
      AIEmoji/Assets.xcassets/boot/bootPage_3.imageset/Contents.json
  15. binární
      AIEmoji/Assets.xcassets/boot/bootPage_3.imageset/bootPage_3@2x.png
  16. binární
      AIEmoji/Assets.xcassets/boot/bootPage_3.imageset/bootPage_3@3x.png
  17. 4 7
      AIEmoji/Business/LaunchVC/TSBootPageVC.swift
  18. 11 6
      AIEmoji/Business/TSAILIstVC/TSAIAgeImageHintVC/TSAIListHintBaseVC.swift
  19. 1 1
      AIEmoji/Business/TSAILIstVC/TSAIChangeEmoteVC/ViewModel/TSAIChangeEmoteVM.swift
  20. 1 1
      AIEmoji/Business/TSAILIstVC/TSAIPhotoGeneratorBaseVC/TSAIPhotoGeneratorBaseVM/TSAIListPhotoGeneratorBaseVM.swift
  21. 1 1
      AIEmoji/Business/TSPTPGeneratorVC/TSPTPGeneratorVC/VM/TSPTPGeneratorVM.swift
  22. 2 0
      AIEmoji/Business/TSPTPGeneratorVC/TSPTPInputVC/TSPTPInputVC.swift
  23. 1 1
      AIEmoji/Business/TSPTPGeneratorVC/TSPTPInputVC/VM/TSPTPInputVM.swift
  24. 17 15
      AIEmoji/Business/TSPTPGeneratorVC/TSPhotoToPhotoVC/Cell/TSPTPSelectStyleCell.swift
  25. 1 1
      AIEmoji/Business/TSTextGeneralPictureVC/TSTextPicGennerateVC/TSTextPicGennerateVM.swift
  26. 2 2
      AIEmoji/Business/VIewTool/TSGeneratorloadingView.swift
  27. 3 3
      AIEmoji/Common/Purchase/TSPurchaseManager.swift
  28. 35 35
      AIEmoji/Res/photo_to_photo_style.json
  29. 4 0
      AIEmoji/de.lproj/Localizable.strings
  30. 4 0
      AIEmoji/en.lproj/Localizable.strings
  31. 5 1
      AIEmoji/es.lproj/Localizable.strings
  32. 12 8
      AIEmoji/ja.lproj/Localizable.strings
  33. 4 0
      AIEmoji/ko.lproj/Localizable.strings
  34. 4 0
      AIEmoji/pt-BR.lproj/Localizable.strings
  35. 4 0
      AIEmoji/pt-PT.lproj/Localizable.strings
  36. 5 1
      AIEmoji/zh-Hans.lproj/Localizable.strings
  37. 12 8
      AIEmoji/zh-Hant.lproj/Localizable.strings

+ 2 - 2
AIEmoji.xcodeproj/project.pbxproj

@@ -2254,7 +2254,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 4;
+				CURRENT_PROJECT_VERSION = 7;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -2293,7 +2293,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 4;
+				CURRENT_PROJECT_VERSION = 7;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;

binární
AIEmoji/Assets.xcassets/AIList/aiList_ttp.imageset/aiList_ttp@2x.png


binární
AIEmoji/Assets.xcassets/AIList/aiList_ttp.imageset/aiList_ttp@3x.png


binární
AIEmoji/Assets.xcassets/PTP/ptp_example_image0.imageset/ptp_example_image0@2x.png


binární
AIEmoji/Assets.xcassets/PTP/ptp_example_image0.imageset/ptp_example_image0@3x.png


binární
AIEmoji/Assets.xcassets/PTP/ptp_example_image1.imageset/ptp_example_image1@2x.png


binární
AIEmoji/Assets.xcassets/PTP/ptp_example_image1.imageset/ptp_example_image1@3x.png


binární
AIEmoji/Assets.xcassets/PTP/style/ptp_style_ActionFigure.imageset/ptp_style_ActionFigure@2x.png


binární
AIEmoji/Assets.xcassets/PTP/style/ptp_style_ActionFigure.imageset/ptp_style_ActionFigure@3x.png


binární
AIEmoji/Assets.xcassets/PTP/style/ptp_style_CuteCat.imageset/ptp_style_CuteCat@2x.png


binární
AIEmoji/Assets.xcassets/PTP/style/ptp_style_CuteCat.imageset/ptp_style_CuteCat@3x.png


binární
AIEmoji/Assets.xcassets/PTP/style/ptp_style_CuteDog.imageset/ptp_style_CuteDog@2x.png


binární
AIEmoji/Assets.xcassets/PTP/style/ptp_style_CuteDog.imageset/ptp_style_CuteDog@3x.png


+ 22 - 0
AIEmoji/Assets.xcassets/boot/bootPage_3.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "bootPage_3@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "bootPage_3@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

binární
AIEmoji/Assets.xcassets/boot/bootPage_3.imageset/bootPage_3@2x.png


binární
AIEmoji/Assets.xcassets/boot/bootPage_3.imageset/bootPage_3@3x.png


+ 4 - 7
AIEmoji/Business/LaunchVC/TSBootPageVC.swift

@@ -18,11 +18,8 @@ class TSBootPageVC: TSBaseVC {
         fatalError("init(coder:) has not been implemented")
     }
     var index:Int = 0
-//    let titleStrings = ["Change image styles".localized,"AI image generation".localized,"Ask Ai anything".localized]
-//    let imageStrings = ["bootPage_0","bootPage_1","bootPage_2"]
-    
-    let titleStrings = ["Change image styles".localized,"AI image generation".localized]
-    let imageStrings = ["bootPage_0","bootPage_1"]
+    let titleStrings = ["Turn Photos into an Action Figure".localized,"Change image styles".localized,"AI image generation".localized]
+    let imageStrings = ["bootPage_3","bootPage_0","bootPage_1"]
     
     lazy var titleLabel: UILabel = {
         let titleLabel = UILabel.createLabel(text: titleStrings.safeString(At: index),font: .font(size: 20,weight: .semibold),textColor: .themeColor,textAlignment:.center,numberOfLines: 0)
@@ -71,7 +68,7 @@ class TSBootPageVC: TSBaseVC {
 
 
         for (idx ,string) in imageStrings.enumerated() {
-            if idx == 1 {
+            if idx == 2 {
                 boatAnimateScrollView.frame = CGRectMake(k_ScreenWidth * CGFloat(idx), -40.0, k_ScreenWidth, k_ScreenHeight)
                 scrollView.addSubview(boatAnimateScrollView)
             }else{
@@ -120,7 +117,7 @@ class TSBootPageVC: TSBaseVC {
         
         boatAnimateScrollView.startAnimation()
     }
-    var pageIndex = 1
+    var pageIndex = 2//最大坐标
     func clickContinue(){
         index+=1
         dePrint("clickContinue index=\(index)")

+ 11 - 6
AIEmoji/Business/TSAILIstVC/TSAIAgeImageHintVC/TSAIListHintBaseVC.swift

@@ -91,6 +91,15 @@ class TSAIListHintBaseVC: TSBaseVC {
         return photoPickerManager
     }()
     
+    lazy var submitBtn: UIButton = {
+        let submitBtn = kCreateNormalSubmitBtn(title: "Upload Photo".localized) { [weak self]  in
+            guard let self = self else { return }
+            pickSinglePhoto()
+        }
+        submitBtn.cornerRadius = 24.0
+        return submitBtn
+    }()
+    
     override func createView() {
         setNavBarViewHidden(true)
         view.backgroundColor = .black.withAlphaComponent(0.7)
@@ -109,7 +118,6 @@ class TSAIListHintBaseVC: TSBaseVC {
         setUpUI()
     }
     
-    
     @objc func clickView() {
         dismiss()
     }
@@ -181,11 +189,6 @@ class TSAIListHintBaseVC: TSBaseVC {
             make.height.equalTo(108*kDesignScale)
         }
         
-        let submitBtn = kCreateNormalSubmitBtn(title: "Upload Photo".localized) { [weak self]  in
-            guard let self = self else { return }
-            pickSinglePhoto()
-        }
-        submitBtn.cornerRadius = 24.0
         popupContentView.addSubview(submitBtn)
         submitBtn.snp.makeConstraints { make in
             make.top.equalTo(badImageView.snp.bottom).offset(35)
@@ -208,9 +211,11 @@ class TSAIListHintBaseVC: TSBaseVC {
     }
     
     func pickSinglePhoto()  {
+        self.submitBtn.isUserInteractionEnabled = false
 //        photoPickerManager.pickSinglePhoto(maxBitSize: config.imageMaxBitSize) { [weak self] image, errorString in
         photoPickerManager.pickCustomSinglePhoto() { [weak self] image, errorString in
             guard let self = self else { return }
+            self.submitBtn.isUserInteractionEnabled = true
             if let errorString = errorString {
                 TSToastShared.showToast(text: errorString)
             }else{

+ 1 - 1
AIEmoji/Business/TSAILIstVC/TSAIChangeEmoteVC/ViewModel/TSAIChangeEmoteVM.swift

@@ -128,7 +128,7 @@ extension TSAIChangeEmoteVM {
                     switch genmojiModel.actionStatus {
                     case .success:
                         if let url = URL(string:genmojiModel.response.resultUrl) {
-                            UIImageView.downloadImageWithProgress(url: url) { [weak self]  progress in
+                            UIImageView.downloadImageWithProgress(urlString: genmojiModel.response.resultUrl) { [weak self]  progress in
                                 guard let self = self else { return }
                         
                                 let progressInt = Int(progress*10.0)

+ 1 - 1
AIEmoji/Business/TSAILIstVC/TSAIPhotoGeneratorBaseVC/TSAIPhotoGeneratorBaseVM/TSAIListPhotoGeneratorBaseVM.swift

@@ -152,7 +152,7 @@ class TSAIListPhotoGeneratorBaseVM {
                     switch genmojiModel.actionStatus {
                     case .success:
                         if let url = URL(string:genmojiModel.response.resultUrl) {
-                            UIImageView.downloadImageWithProgress(url: url) { [weak self]  progress in
+                            UIImageView.downloadImageWithProgress(urlString: genmojiModel.response.resultUrl) { [weak self]  progress in
                                 guard let self = self else { return }
                         
                                 let progressInt = Int(progress*10.0)

+ 1 - 1
AIEmoji/Business/TSPTPGeneratorVC/TSPTPGeneratorVC/VM/TSPTPGeneratorVM.swift

@@ -152,7 +152,7 @@ class TSPTPGeneratorVM {
                     switch genmojiModel.actionStatus {
                     case .success:
                         if let url = URL(string:genmojiModel.response.resultUrl) {
-                            UIImageView.downloadImageWithProgress(url: url) { [weak self]  progress in
+                            UIImageView.downloadImageWithProgress(urlString: genmojiModel.response.resultUrl) { [weak self]  progress in
                                 guard let self = self else { return }
                         
                                 let progressInt = Int(progress*10.0)

+ 2 - 0
AIEmoji/Business/TSPTPGeneratorVC/TSPTPInputVC/TSPTPInputVC.swift

@@ -377,6 +377,8 @@ extension TSPTPInputVC {
         }
         
         cusStackView.addSubviewToStack(promptTextView,length: promptTextViewH,animate: false)
+        
+        promptTextView.isHidden = !viewModel.selectedPTPStyleModel.input
 
     }
     

+ 1 - 1
AIEmoji/Business/TSPTPGeneratorVC/TSPTPInputVC/VM/TSPTPInputVM.swift

@@ -68,7 +68,7 @@ class TSPTPInputVM {
 
     var isCanGennerate:Bool {
         if upLoadImage != nil {
-            if selectedPTPStyleModel.input,selectedPTPStyleModel.inputText.replacingOccurrences(of: " ", with: "").count <= 0 {
+            if selectedPTPStyleModel.imageText == "No Style", selectedPTPStyleModel.input,selectedPTPStyleModel.inputText.replacingOccurrences(of: " ", with: "").count <= 0 {
                 return false
             }
             return true

+ 17 - 15
AIEmoji/Business/TSPTPGeneratorVC/TSPhotoToPhotoVC/Cell/TSPTPSelectStyleCell.swift

@@ -113,22 +113,24 @@ class TSPTPSelectStyleCCell: TSBaseCollectionCell {
                 hotImageView.isHidden = true
             }
             
-            var strokeColor = UIColor.white
-            var font = UIFont.font(size: 14)
-            if itemModel.specialStyle == 1 {
-                font = UIFont.font(name:.PoppinsBlackItalic,size: 18)
-                strokeColor = "#FFB73C".uiColor
-            }
+//            var strokeColor = UIColor.white
+//            var font = UIFont.font(size: 14)
+//            if itemModel.specialStyle == 1 {
+//                font = UIFont.font(name:.PoppinsBlackItalic,size: 18)
+//                strokeColor = "#FFB73C".uiColor
+//            }
+//            
+//            textLabel.attributedText = NSAttributedString(
+//                string: itemModel.imageText.localized,
+//                attributes: [
+//                    .strokeColor: strokeColor,       // 描边颜色
+//                    .strokeWidth: -4.0,                // 负值表示同时填充和描边(正值仅描边)
+//                    .foregroundColor: UIColor.white,   // 文字填充色
+//                    .font: font
+//                ]
+//            )
             
-            textLabel.attributedText = NSAttributedString(
-                string: itemModel.imageText.localized,
-                attributes: [
-                    .strokeColor: strokeColor,       // 描边颜色
-                    .strokeWidth: -4.0,                // 负值表示同时填充和描边(正值仅描边)
-                    .foregroundColor: UIColor.white,   // 文字填充色
-                    .font: font
-                ]
-            )
+            textLabel.text = itemModel.imageText.localized
         }
     }
     

+ 1 - 1
AIEmoji/Business/TSTextGeneralPictureVC/TSTextPicGennerateVC/TSTextPicGennerateVM.swift

@@ -88,7 +88,7 @@ class TSTextPicGennerateVM {
                     switch genmojiModel.actionStatus {
                     case .success:
                         if let url = URL(string:genmojiModel.response.resultUrl) {
-                            UIImageView.downloadImageWithProgress(url: url) { [weak self]  progress in
+                            UIImageView.downloadImageWithProgress(urlString: genmojiModel.response.resultUrl) { [weak self]  progress in
                                 guard let self = self else { return }
                         
                                 let progressInt = Int(progress*10.0)

+ 2 - 2
AIEmoji/Business/VIewTool/TSGeneratorloadingView.swift

@@ -133,9 +133,9 @@ class TSGeneratorloadingView: TSBaseView {
             make.bottom.equalTo(-20)
         }
         
-        cusStackView.addSubview(regenerateBtn)
+        cusStackView.addSubviewToStackWhiteBoard(regenerateBtn)
         regenerateBtn.snp.makeConstraints { make in
-            make.top.equalTo(0)
+            make.top.equalTo(20)
             make.centerX.equalToSuperview()
             make.height.equalTo(44)
             make.width.equalTo(126*kDesignScale)

+ 3 - 3
AIEmoji/Common/Purchase/TSPurchaseManager.swift

@@ -143,9 +143,9 @@ public class PurchaseManager: NSObject {
     }
 
     @objc public var isVip: Bool {
-        #if DEBUG
-            return true
-        #endif
+//        #if DEBUG
+//            return true
+//        #endif
         guard let expiresDate = expiredDate else {
             return false
         }

+ 35 - 35
AIEmoji/Res/photo_to_photo_style.json

@@ -1,49 +1,39 @@
 [
-    {
-        "imageName": "ptp_style_AnimeMax",
-        "imageText": "Anime",
-        "prompt":"Turn uploaded photos into ghibli style",
-        "specialStyle":3,
-        "isVip": true,
-        "advance":true,
-    },
-    {
-        "imageName": "ptp_style_10",
-        "imageText": "Anime",
-        "prompt":"Studio Ghibli-inspired anime aesthetic, Hayao Miyazaki style, vibrant yet soft color palette, detailed hand-painted textures, whimsical dreamlike atmosphere, soft cel-shading, watercolor wash effect, subtle grain texture, preserving original composition. Style strength: 85%",
-        "specialStyle":1,
-        "isVip": true
-    },
     {
         "imageName": "ptp_style_ActionFigure",
         "imageText": "Action Figure",
-        "prompt":"Action figure",
+        "prompt":"将上传的照片转化为一款3D可爱玩偶风格形象,整体造型卡通立体,主角位于画面正中,清哳可见,风格融合插画与 3D 质感。背景为玩具包装盒展示样式:包括透明塑料外壳、纸卡底板,纸卡上印有 「Limited  Edition」字样。图片比例 3:4。包装设计包含玩具插卡元素,如顶部挂孔、边缘裁切线等,呈现真实的商用玩具包装感。包装内右侧竖排另外放置 4 件 “配件” 道具,要根据上传的照片中人物的造型和身份推理出匹配的道具,摆放自然协调,增强整体故事感。色调以照片配色为主,饱和度高,颜色明亮清澈,光线自然温暖,画面风格现代、专业,同时保持可爱、俏皮的趣味性。背景简洁,突出主体,整体视觉呈现应具备真实商品的质感与陈列吸引力。",
         "input":true,
-        "specialStyle":0,
+        "specialStyle":1,
         "isVip": true,
         "advance":true
     },
     {
-        "imageName": "ptp_style_CuteDog",
-        "imageText": "Cute Dog",
-        "prompt":"Transform this photo into a Snoopy cartoon style, including Snoopy and Woodstock, with the same color and frame size as the original photo",
+        "imageName": "ptp_style_10",
+        "imageText": "Anime Lite",
+        "prompt":"Studio Ghibli-inspired anime aesthetic, Hayao Miyazaki style, vibrant yet soft color palette, detailed hand-painted textures, whimsical dreamlike atmosphere, soft cel-shading, watercolor wash effect, subtle grain texture, preserving original composition. Style strength: 85%",
         "specialStyle":0,
-        "isVip": true,
-        "advance":true
+        "isVip": true
     },
     {
-        "imageName": "ptp_style_CuteCat",
-        "imageText": "Cute Cat",
-        "prompt":"Please turn this picture into Hello Kitty cartoon style and add Hello Kitty, don't change my face to hello kitty",
+        "imageName": "ptp_style_AnimeMax",
+        "imageText": "Anime Pro",
+        "prompt":"Turn uploaded photos into ghibli style",
         "specialStyle":0,
         "isVip": true,
-        "advance":true
+        "advance":true,
+    },
+    {
+        "imageName": "ptp_style_7",
+        "imageText": "Fantasy Illustration",
+        "prompt":"Fantasy illustration conversion:  Core structure preservation (90% shape accuracy)  Arthur Rackham-inspired inking with Art Nouveau flourishes  Spectral lighting effects (etherial glow: intensity 0.7)  Arcane texture overlay: • Ancient grimoire parchment (60% opacity) • Luminescent crystal refraction patterns • Elven vine motifs (density: 25/cm²)  Chromatic scheme: Base: Pantone 19-4052 Classic Blue Accent: 17-1463 Flame Scarlet + 13-0647 Iced Green  Mystical atmosphere injection: • Floating rune particles (size variance: 0.3-2mm) • Subtle aura pulsation (frequency: 0.5Hz) • Stardust specular highlights  Prohibited alterations: No added wings/horns/non-native elements Max 15% anatomical exaggeration Color shift tolerance ΔE<8",
+        "isVip": false
     },
     {
         "imageName": "ptp_style_Irasutoya",
         "imageText": "Irasutoya",
         "prompt":"用 irasutoya 风格绘制上传的照片,保留关键内容和构图,色彩丰富明亮",
-        "specialStyle":0,
+        "specialStyle":2,
         "isVip": true,
         "advance":true
     },
@@ -59,15 +49,9 @@
         "imageName": "ptp_style_Claymation",
         "imageText": "Claymation",
         "prompt":"粘土动画风特征",
-        "specialStyle":2,
+        "specialStyle":0,
         "isVip": true
     },
-    {
-        "imageName": "ptp_style_7",
-        "imageText": "Fantasy Illustration",
-        "prompt":"Fantasy illustration conversion:  Core structure preservation (90% shape accuracy)  Arthur Rackham-inspired inking with Art Nouveau flourishes  Spectral lighting effects (etherial glow: intensity 0.7)  Arcane texture overlay: • Ancient grimoire parchment (60% opacity) • Luminescent crystal refraction patterns • Elven vine motifs (density: 25/cm²)  Chromatic scheme: Base: Pantone 19-4052 Classic Blue Accent: 17-1463 Flame Scarlet + 13-0647 Iced Green  Mystical atmosphere injection: • Floating rune particles (size variance: 0.3-2mm) • Subtle aura pulsation (frequency: 0.5Hz) • Stardust specular highlights  Prohibited alterations: No added wings/horns/non-native elements Max 15% anatomical exaggeration Color shift tolerance ΔE<8",
-        "isVip": false
-    },
     {
         "imageName": "ptp_style_6",
         "imageText": "Classical Painting",
@@ -78,9 +62,25 @@
         "imageName": "ptp_style_disney",
         "imageText": "Cute",
         "prompt":"把图片变成disney风格",
-        "specialStyle":2,
+        "specialStyle":0,
         "isVip": true
     },
+    {
+        "imageName": "ptp_style_CuteDog",
+        "imageText": "Cute Dog",
+        "prompt":"Transform this photo into a Snoopy cartoon style, including Snoopy and Woodstock, with the same color and frame size as the original photo",
+        "specialStyle":0,
+        "isVip": true,
+        "advance":true
+    },
+    {
+        "imageName": "ptp_style_CuteCat",
+        "imageText": "Cute Cat",
+        "prompt":"Please turn this picture into Hello Kitty cartoon style and add Hello Kitty, don't change my face to hello kitty",
+        "specialStyle":0,
+        "isVip": true,
+        "advance":true
+    },
     {
         "imageName": "ptp_style_0",
         "imageText": "Retro Anime",

+ 4 - 0
AIEmoji/de.lproj/Localizable.strings

@@ -238,3 +238,7 @@
 "Cute Cat" = "Süße Katze";
 "Irasutoya" = "Irasutoya";
 "It is definitely worth your wait. Just watch it" = "Das Warten lohnt sich auf jeden Fall. Schau es dir einfach an";
+
+"Turn Photos into an Action Figure" = "Verwandeln Sie Fotos in eine Actionfigur";
+"Anime Lite" = "Anime Lite";
+"Anime Pro" = "Anime-Profi";

+ 4 - 0
AIEmoji/en.lproj/Localizable.strings

@@ -235,3 +235,7 @@
 "Cute Cat" = "Cute Cat";
 "Irasutoya" = "Irasutoya";
 "It is definitely worth your wait. Just watch it" = "It is definitely worth your wait. Just watch it";
+
+"Turn Photos into an Action Figure" = "Turn Photos into an Action Figure";
+"Anime Lite" = "Anime Lite";
+"Anime Pro" = "Anime Pro";

+ 5 - 1
AIEmoji/es.lproj/Localizable.strings

@@ -232,5 +232,9 @@
 "Action Figure" = "Figura de acción";
 "Cute Dog" = "lindo perro";
 "Cute Cat" = "lindo gato";
-"Irasutoya" = "irasutoya";
+"Irasutoya" = "Irasutoya";
 "It is definitely worth your wait. Just watch it" = "Definitivamente vale la pena esperar. Sólo míralo";
+
+"Turn Photos into an Action Figure" = "Convierte fotos en una figura de acción";
+"Anime Lite" = "Anime ligero";
+"Anime Pro" = "Anime Pro";

+ 12 - 8
AIEmoji/ja.lproj/Localizable.strings

@@ -226,11 +226,15 @@
 "Restoring" = "復元中";
 "Make photo live" = "写真をライブにする";
 
-"~ %d min" = "~ %d 分";
-"~ %d seconds" = "~ %d 秒";
-"Describe how you want to transform" = "どのように変身したいかを説明してください";
-"Action Figure" = "アクションフィギュア";
-"Cute Dog" = "かわいい犬";
-"Cute Cat" = "かわいい猫";
-"Irasutoya" = "Irasutoya";
-"It is definitely worth your wait. Just watch it" = "待つ価値は間違いなくあります。ただ見てください";
+"~ %d min" = "~%d分";
+"~ %d seconds" = "~%d秒";
+"Describe how you want to transform" = "変換方法を説明します";
+"Action Figure" = "かわいい人形";
+"Cute Dog" = "キャラクターの子犬";
+"Cute Cat" = "キティ";
+"Irasutoya" = "いらすとや";
+"It is definitely worth your wait. Just watch it" = "待つ価値はある";
+
+"Turn Photos into an Action Figure" = "写真をアクションフィギュアに変える";
+"Anime Lite" = "アニメライト";
+"Anime Pro" = "アニメプロ";

+ 4 - 0
AIEmoji/ko.lproj/Localizable.strings

@@ -234,3 +234,7 @@
 "Cute Cat" = "귀여운 고양이";
 "Irasutoya" = "이라수토야";
 "It is definitely worth your wait. Just watch it" = "확실히 기다릴만한 가치가 있습니다. 그냥 봐";
+
+"Turn Photos into an Action Figure" = "사진을 액션 피규어로 바꿔보세요";
+"Anime Lite" = "애니메 라이트";
+"Anime Pro" = "애니메이션 프로";

+ 4 - 0
AIEmoji/pt-BR.lproj/Localizable.strings

@@ -234,3 +234,7 @@
 "Cute Cat" = "Gato fofo";
 "Irasutoya" = "Irasutoya";
 "It is definitely worth your wait. Just watch it" = "Definitivamente vale a pena esperar. Apenas observe";
+
+"Turn Photos into an Action Figure" = "Transforme fotos em uma figura de ação";
+"Anime Lite" = "Anime Lite";
+"Anime Pro" = "Anime Pro";

+ 4 - 0
AIEmoji/pt-PT.lproj/Localizable.strings

@@ -234,3 +234,7 @@
 "Cute Cat" = "Gato fofo";
 "Irasutoya" = "Irasutoya";
 "It is definitely worth your wait. Just watch it" = "Definitivamente vale a pena esperar. Apenas observe";
+
+"Turn Photos into an Action Figure" = "Transforme fotos em uma figura de ação";
+"Anime Lite" = "Anime Lite";
+"Anime Pro" = "Anime Pro";

+ 5 - 1
AIEmoji/zh-Hans.lproj/Localizable.strings

@@ -229,8 +229,12 @@
 "~ %d min" = "~ %d 分钟";
 "~ %d seconds" = "~%d秒";
 "Describe how you want to transform" = "描述你想要如何转换";
-"Action Figure" = "可爱玩偶";
+"Action Figure" = "玩偶手办";
 "Cute Dog" = "卡通小狗";
 "Cute Cat" = "凯蒂猫";
 "Irasutoya" = "插画小人";
 "It is definitely worth your wait. Just watch it" = "绝对值得您的等待";
+
+"Turn Photos into an Action Figure" = "把你变成独一无二的手办";
+"Anime Lite" = "动漫精简版";
+"Anime Pro" = "动漫增强版";

+ 12 - 8
AIEmoji/zh-Hant.lproj/Localizable.strings

@@ -77,7 +77,7 @@
 "Retro Anime" = "復古動漫";
 "Classical Painting" = "古典油畫";
 "Cyberpunk" = "賽博朋克";
-"Pop Art" = "普藝術";
+"Pop Art" = "普藝術";
 "Retrofuturism" = "復古未來主義";
 "Photorealism" = "寫實主義";
 "Modern Digital Art" = "現代數位藝術";
@@ -218,11 +218,15 @@
 "Restoring" = "復原中";
 "Make photo live" = "讓照片生動起來";
 
-"~ %d min" = "~ %d 分鐘";
+"~ %d min" = "~%d分鐘";
 "~ %d seconds" = "~%d秒";
-"Describe how you want to transform" = "描述您想要如何轉型";
-"Action Figure" = "可動人偶";
-"Cute Dog" = "可愛的狗";
-"Cute Cat" = "可愛的貓咪";
-"Irasutoya" = "伊羅蘇托亞";
-"It is definitely worth your wait. Just watch it" = "絕對值得您的等待。就看吧";
+"Describe how you want to transform" = "描述你想要如何轉換";
+"Action Figure" = "玩偶手辦";
+"Cute Dog" = "卡通小狗";
+"Cute Cat" = "凱蒂貓";
+"Irasutoya" = "插畫小人";
+"It is definitely worth your wait. Just watch it" = "絕對值得你等待";
+
+"Turn Photos into an Action Figure" = "把你變成獨一無二的手辦";
+"Anime Lite" = "動漫精簡版";
+"Anime Pro" = "動漫增強版";