Bläddra i källkod

feat:调整细节,弹窗文案

kailen 1 vecka sedan
förälder
incheckning
d6af354e7b
21 ändrade filer med 255 tillägg och 20 borttagningar
  1. 2 2
      AIEmoji.xcodeproj/project.pbxproj
  2. 23 0
      AIEmoji/Assets.xcassets/AIList/hint/hint_earth_badImage.imageset/Contents.json
  3. BIN
      AIEmoji/Assets.xcassets/AIList/hint/hint_earth_badImage.imageset/hint_earth_badImage@1x.png
  4. BIN
      AIEmoji/Assets.xcassets/AIList/hint/hint_earth_badImage.imageset/hint_earth_badImage@2x.png
  5. BIN
      AIEmoji/Assets.xcassets/AIList/hint/hint_earth_badImage.imageset/hint_earth_badImage@3x.png
  6. 23 0
      AIEmoji/Assets.xcassets/AIList/hint/hint_earth_goodImage.imageset/Contents.json
  7. BIN
      AIEmoji/Assets.xcassets/AIList/hint/hint_earth_goodImage.imageset/hint_earth_goodImage@1x.png
  8. BIN
      AIEmoji/Assets.xcassets/AIList/hint/hint_earth_goodImage.imageset/hint_earth_goodImage@2x.png
  9. BIN
      AIEmoji/Assets.xcassets/AIList/hint/hint_earth_goodImage.imageset/hint_earth_goodImage@3x.png
  10. 16 0
      AIEmoji/Business/TSAILIstVC/TSAIAgeImageHintVC/TSAIListHintBaseVC.swift
  11. 43 15
      AIEmoji/Business2/DisCover/Data/TSDiscoverViewModel+Data.swift
  12. 3 3
      AIEmoji/Common/Purchase/TSPurchaseManager.swift
  13. 16 0
      AIEmoji/de.lproj/Localizable.strings
  14. 17 0
      AIEmoji/en.lproj/Localizable.strings
  15. 16 0
      AIEmoji/es.lproj/Localizable.strings
  16. 16 0
      AIEmoji/ja.lproj/Localizable.strings
  17. 16 0
      AIEmoji/ko.lproj/Localizable.strings
  18. 16 0
      AIEmoji/pt-BR.lproj/Localizable.strings
  19. 16 0
      AIEmoji/pt-PT.lproj/Localizable.strings
  20. 16 0
      AIEmoji/zh-Hans.lproj/Localizable.strings
  21. 16 0
      AIEmoji/zh-Hant.lproj/Localizable.strings

+ 2 - 2
AIEmoji.xcodeproj/project.pbxproj

@@ -3204,7 +3204,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 1;
+				CURRENT_PROJECT_VERSION = 2;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -3243,7 +3243,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 1;
+				CURRENT_PROJECT_VERSION = 2;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;

+ 23 - 0
AIEmoji/Assets.xcassets/AIList/hint/hint_earth_badImage.imageset/Contents.json

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

BIN
AIEmoji/Assets.xcassets/AIList/hint/hint_earth_badImage.imageset/hint_earth_badImage@1x.png


BIN
AIEmoji/Assets.xcassets/AIList/hint/hint_earth_badImage.imageset/hint_earth_badImage@2x.png


BIN
AIEmoji/Assets.xcassets/AIList/hint/hint_earth_badImage.imageset/hint_earth_badImage@3x.png


+ 23 - 0
AIEmoji/Assets.xcassets/AIList/hint/hint_earth_goodImage.imageset/Contents.json

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

BIN
AIEmoji/Assets.xcassets/AIList/hint/hint_earth_goodImage.imageset/hint_earth_goodImage@1x.png


BIN
AIEmoji/Assets.xcassets/AIList/hint/hint_earth_goodImage.imageset/hint_earth_goodImage@2x.png


BIN
AIEmoji/Assets.xcassets/AIList/hint/hint_earth_goodImage.imageset/hint_earth_goodImage@3x.png


+ 16 - 0
AIEmoji/Business/TSAILIstVC/TSAIAgeImageHintVC/TSAIListHintBaseVC.swift

@@ -176,6 +176,21 @@ class TSAIListHintBaseVC: TSBaseVC {
         }
         
         
+        //地球
+        static var earthConfig:Config {
+            return Config(imageMaxBitSize: kUploadImageMaxBit10Size,
+                          goodImageNamed: "hint_earth_goodImage",
+                          badImageNamed: "hint_earth_badImage",
+                          titleText: "Upload your photos".localized,
+                          titleSubText: "",
+                          goodText: "Good photo examples".localized,
+                          goodInfoText: "•" + "Outdoor photo with greenery and a non-solid background".localized,
+                          badText: "Bad photo examples".localized,
+                          badInfoText: "•" + "Solid color background".localized
+            )
+        }
+        
+        
         static func getConfig(hint:Int)->Config{
             switch hint {
             case 1:return .petConfig
@@ -184,6 +199,7 @@ class TSAIListHintBaseVC: TSBaseVC {
             case 4:return .kissConfig
             case 5:return .oscarConfig
             case 6:return .danceConfig
+            case 7:return .earthConfig
             default:return .singleMmultiplePeopleConfig
             }
         }

+ 43 - 15
AIEmoji/Business2/DisCover/Data/TSDiscoverViewModel+Data.swift

@@ -35,8 +35,7 @@ class TSDiscoverViewModel {
 
     lazy var videoEffectItems: [TSDiscoverItemModel] = {
         [
-            
-            ///Trending Video Effect
+            /// Trending Video Effect
             TSDiscoverItemModel(style: .videoV2,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Alien Kidnap.mp4"]),
                                 generateModel: TSGenerateModel(json: video_AlienKidnap)),
@@ -67,10 +66,12 @@ class TSDiscoverViewModel {
             TSDiscoverItemModel(style: .videoV2,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["360° Microwave.mp4"]),
                                 generateModel: TSGenerateModel(json: video_360Microwave)),
-        
-            
-            
-            ///AI Dance
+        ]
+    }()
+
+    lazy var aiDanceItems: [TSDiscoverItemModel] = {
+        let items: [TSDiscoverItemModel] = [
+            /// AI Dance
             TSDiscoverItemModel(style: .videoV2,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Shake.mp4"]),
                                 generateModel: TSGenerateModel(json: video_Shake)),
@@ -95,10 +96,13 @@ class TSDiscoverViewModel {
             TSDiscoverItemModel(style: .videoV2,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Shake it Down.mp4"]),
                                 generateModel: TSGenerateModel(json: video_ShakeitDown)),
-            
-            
-            
-            //Creative Effect
+        ]
+        return items
+    }()
+
+    lazy var creativeEffectItems: [TSDiscoverItemModel] = {
+        let items: [TSDiscoverItemModel] = [
+            // Creative Effect
             TSDiscoverItemModel(style: .videoV2,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Fly.mp4"]),
                                 generateModel: TSGenerateModel(json: video_Fly)),
@@ -106,8 +110,8 @@ class TSDiscoverViewModel {
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Happy Birthday.mp4"]),
                                 generateModel: TSGenerateModel(json: video_HappyBirthday)),
             TSDiscoverItemModel(style: .videoV2,
-                                  viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Surprise Flower.mp4"]),
-                                  generateModel: TSGenerateModel(json: video_SurpriseFlower)),
+                                viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Surprise Flower.mp4"]),
+                                generateModel: TSGenerateModel(json: video_SurpriseFlower)),
             TSDiscoverItemModel(style: .videoV2,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Pet to Human.mp4"]),
                                 generateModel: TSGenerateModel(json: video_PettoHuman)),
@@ -149,7 +153,7 @@ class TSDiscoverViewModel {
                                 viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["Jump to Cloud.mp4"]),
                                 generateModel: TSGenerateModel(json: video_JumpToCloud)),
             TSDiscoverItemModel(style: .videoV2,
-                                viewModel: TSDiscoverAnimationItemVM(title: "",style: .video, imageNameds: ["French Kiss.mp4"]),
+                                viewModel: TSDiscoverAnimationItemVM(title: "", style: .video, imageNameds: ["French Kiss.mp4"]),
                                 generateModel: TSGenerateModel(json: video_FrenchKiss)),
 
 //            TSDiscoverItemModel(style: .videoV2,
@@ -158,16 +162,38 @@ class TSDiscoverViewModel {
 //                                showAtHome: false
 //            ),
         ]
+        return items
     }()
+    
+ 
 
     lazy var videoEffectSection: TSDiscoverSectionModel = {
         let section = TSDiscoverSectionModel()
         section.style = .styleMore
-        section.setTitle(title: "Video Effect".localized, imageNamed: "🎞️", colors: ["#E7D1AB", "#FFFFFF"])
+        section.setTitle(title: "Trending Video Effect".localized, imageNamed: "🏆", colors: ["#FCB728", "#FFFFFF"])
         section.items = [videoEffectItems.filter({ $0.showAtHome == true })]
 
         return section
     }()
+    
+    lazy var aiDanceSection: TSDiscoverSectionModel = {
+        let section = TSDiscoverSectionModel()
+        section.style = .styleMore
+        section.setTitle(title: "AI Dance".localized, imageNamed: "💃", colors: ["#EF2C00", "#FFFFFF"])
+        section.items = [aiDanceItems.filter({ $0.showAtHome == true })]
+
+        return section
+    }()
+    
+    
+    lazy var creativeEffectSection: TSDiscoverSectionModel = {
+        let section = TSDiscoverSectionModel()
+        section.style = .styleMore
+        section.setTitle(title: "Creative Effect".localized, imageNamed: "✨", colors: ["#FCDF3B", "#FFFFFF"])
+        section.items = [creativeEffectItems.filter({ $0.showAtHome == true })]
+
+        return section
+    }()
 
 //    //顶部按钮功能(金刚区)
 //    lazy var topFuncSection:TSDiscoverSectionModel = {
@@ -194,7 +220,7 @@ class TSDiscoverViewModel {
     lazy var popularStylesSection: TSDiscoverSectionModel = {
         let section = TSDiscoverSectionModel()
         section.style = .styleMore
-        section.setTitle(title: "Popular".localized, imageNamed: "🔥", colors: ["#EF2C00", "#FEFEE7"])
+        section.setTitle(title: "Popular Photo Filter".localized, imageNamed: "🔥", colors: ["#EF2C00", "#FEFEE7"])
         section.items = [[
             TSDiscoverItemModel(style: .ptp,
                                 viewModel: TSDiscoverAnimationItemVM(title: "", imageNameds: ["discover_0_StickerMe", "discover_1_StickerMe"]),
@@ -599,6 +625,8 @@ class TSDiscoverViewModel {
         [
             bannerSection,
             videoEffectSection,
+            aiDanceSection,
+            creativeEffectSection,
             popularStylesSection,
             processPhotoSection,
             figuresToysSection,

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

@@ -112,9 +112,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
         }

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

@@ -578,3 +578,19 @@
 "Your creations will be listed here" = "Ihre Kreationen werden hier aufgelistet";
 "Your prompt may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy." = "Ihre Eingabeaufforderung kann Urheberrechtsverletzungen, Nacktheit, Blut oder Gewalt enthalten, die nicht den Gesundheitsrichtlinien entsprechen.";
 "Create Video" = "Video erstellen";
+
+"Trending Video Effect" = "Trendiger Videoeffekt";
+"AI Dance" = "KI-Tanz";
+"Creative Effect" = "Kreativer Effekt";
+"Outdoor photo with greenery and a non-solid background" = "Außenaufnahme mit Grünpflanzen und nicht einfarbigem Hintergrund";
+"Solid color background" = "Einfarbiger Hintergrund";
+"Popular Photo Filter" = "Beliebter Fotofilter";
+"Alien Kidnap" = "Alien-Entführung";
+"Drive my yacht" = "Meine Yacht fahren";
+"Earth Zoom out" = "Erde Verkleinern";
+"Superman" = "Übermensch";
+"Box Me" = "Box mich";
+"Shake" = "Shake";
+"Rat Dance" = "Rattentanz";
+"Jump to Cloud" = "Zur Cloud wechseln";
+"Emoji Me" = "Emoji Ich";

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

@@ -581,3 +581,20 @@ Small / Medium / Large: Manual amplitude selection ";
 "Your creations will be listed here" = "Your creations will be listed here";
 "Your prompt may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy." = "Your prompt may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy.";
 "Create Video" = "Create Video";
+
+
+"Trending Video Effect" = "Trending Video Effect";
+"AI Dance" = "AI Dance";
+"Creative Effect" = "Creative Effect";
+"Outdoor photo with greenery and a non-solid background" = "Outdoor photo with greenery and a non-solid background";
+"Solid color background" = "Solid color background";
+"Popular Photo Filter" = "Popular Photo Filter";
+"Alien Kidnap" = "Alien Kidnap";
+"Drive my yacht" = "Drive my yacht";
+"Earth Zoom out" = "Earth Zoom out";
+"Superman" = "Superman";
+"Box Me" = "Box Me";
+"Shake" = "Shake";
+"Rat Dance" = "Rat Dance";
+"Jump to Cloud" = "Jump to Cloud";
+"Emoji Me" = "Emoji Me";

+ 16 - 0
AIEmoji/es.lproj/Localizable.strings

@@ -576,3 +576,19 @@
 "Your creations will be listed here" = "Tus creaciones aparecerán aquí";
 "Your prompt may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy." = "Su mensaje puede contener infracciones de derechos de autor, desnudez, sangre o violencia que no cumpla con la Política de salud.";
 "Create Video" = "Crear vídeo";
+
+"Trending Video Effect" = "Efecto de vídeo de tendencia";
+"AI Dance" = "Baile con IA";
+"Creative Effect" = "Efecto creativo";
+"Outdoor photo with greenery and a non-solid background" = "Foto al aire libre con vegetación y fondo no sólido";
+"Solid color background" = "Fondo de color sólido";
+"Popular Photo Filter" = "Filtro de foto popular";
+"Alien Kidnap" = "Secuestro extraterrestre";
+"Drive my yacht" = "Conduce mi yate";
+"Earth Zoom out" = "Alejar la Tierra";
+"Superman" = "Superhombre";
+"Box Me" = "Box Me";
+"Shake" = "Agitar";
+"Rat Dance" = "Danza de la rata";
+"Jump to Cloud" = "Saltar a la nube";
+"Emoji Me" = "emoji yo";

+ 16 - 0
AIEmoji/ja.lproj/Localizable.strings

@@ -575,3 +575,19 @@
 "Your creations will be listed here" = "あなたの作品はここに掲載されます";
 "Your prompt may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy." = "プロンプトには、健康ポリシーに準拠していない著作権侵害、ヌード、流血、暴力が含まれる可能性があります。";
 "Create Video" = "ビデオを作成する";
+
+"Trending Video Effect" = "トレンドの動画効果";
+"AI Dance" = "AIダンス";
+"Creative Effect" = "クリエイティブ効果";
+"Outdoor photo with greenery and a non-solid background" = "緑豊かな屋外写真と非単色背景";
+"Solid color background" = "単色背景";
+"Popular Photo Filter" = "人気の写真フィルター";
+"Alien Kidnap" = "エイリアン誘拐";
+"Drive my yacht" = "ヨットを運転する";
+"Earth Zoom out" = "地球をズームアウト";
+"Superman" = "スーパーマン";
+"Box Me" = "ボックスミー";
+"Shake" = "シェイク";
+"Rat Dance" = "ネズミダンス";
+"Jump to Cloud" = "クラウドへジャンプ";
+"Emoji Me" = "Emoji Me";

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

@@ -579,3 +579,19 @@
 "Your creations will be listed here" = "귀하의 창작물이 여기에 나열됩니다.";
 "Your prompt may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy." = "귀하의 프롬프트에는 건강 정책을 준수하지 않는 저작권 침해, 누드, 유혈 또는 폭력이 포함될 수 있습니다.";
 "Create Video" = "비디오 만들기";
+
+"Trending Video Effect" = "트렌딩 비디오 효과";
+"AI Dance" = "AI 댄스";
+"Creative Effect" = "크리에이티브 효과";
+"Outdoor photo with greenery and a non-solid background" = "녹지 배경과 비고정 배경의 실외 사진";
+"Solid color background" = "단색 배경";
+"Popular Photo Filter" = "인기 사진 필터";
+"Alien Kidnap" = "외계인 납치";
+"Drive my yacht" = "내 요트를 운전해";
+"Earth Zoom out" = "지구 확대 축소";
+"Superman" = "초인";
+"Box Me" = "박스 미";
+"Shake" = "떨림";
+"Rat Dance" = "쥐 춤";
+"Jump to Cloud" = "클라우드로 이동";
+"Emoji Me" = "Emoji Me";

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

@@ -575,3 +575,19 @@
 "Your creations will be listed here" = "Suas criações serão listadas aqui";
 "Your prompt may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy." = "Seu prompt pode conter violação de direitos autorais, nudez, sangue ou violência que não estejam em conformidade com a Política de Saúde.";
 "Create Video" = "Criar vídeo";
+
+"Trending Video Effect" = "Efeito de vídeo em alta";
+"AI Dance" = "Dança AI";
+"Creative Effect" = "Efeito criativo";
+"Outdoor photo with greenery and a non-solid background" = "Foto ao ar livre com vegetação e fundo não sólido";
+"Solid color background" = "Fundo de cor sólida";
+"Popular Photo Filter" = "Filtro de foto popular";
+"Alien Kidnap" = "Sequestro de alienígenas";
+"Drive my yacht" = "Dirija meu iate";
+"Earth Zoom out" = "Zoom da Terra para fora";
+"Superman" = "Super-Homem";
+"Box Me" = "Box Me";
+"Shake" = "Sacudir";
+"Rat Dance" = "Dança do Rato";
+"Jump to Cloud" = "Ir para a nuvem";
+"Emoji Me" = "Emoji eu";

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

@@ -574,3 +574,19 @@
 "Your creations will be listed here" = "Suas criações serão listadas aqui";
 "Your prompt may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy." = "Seu prompt pode conter violação de direitos autorais, nudez, sangue ou violência que não estejam em conformidade com a Política de Saúde.";
 "Create Video" = "Criar vídeo";
+
+"Trending Video Effect" = "Efeito de vídeo em alta";
+"AI Dance" = "Dança AI";
+"Creative Effect" = "Efeito criativo";
+"Outdoor photo with greenery and a non-solid background" = "Foto ao ar livre com vegetação e fundo não sólido";
+"Solid color background" = "Fundo de cor sólida";
+"Popular Photo Filter" = "Filtro de foto popular";
+"Alien Kidnap" = "Sequestro de alienígenas";
+"Drive my yacht" = "Dirija meu iate";
+"Earth Zoom out" = "Zoom da Terra para fora";
+"Superman" = "Super-Homem";
+"Box Me" = "Box Me";
+"Shake" = "Sacudir";
+"Rat Dance" = "Dança do Rato";
+"Jump to Cloud" = "Ir para a nuvem";
+"Emoji Me" = "Emoji eu";

+ 16 - 0
AIEmoji/zh-Hans.lproj/Localizable.strings

@@ -577,3 +577,19 @@
 "Your creations will be listed here" = "您的作品将在这里列出";
 "Your prompt may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy." = "您的提示可能包含不符合健康政策的版权侵权、裸体、血腥或暴力内容。";
 "Create Video" = "创建视频";
+
+"Trending Video Effect" = "热门视频特效";
+"AI Dance" = "AI 舞蹈";
+"Creative Effect" = "创意特效";
+"Outdoor photo with greenery and a non-solid background" = "非纯色带绿植的户外背景";
+"Solid color background" = "纯色背景";
+"Popular Photo Filter" = "热门照片滤镜";
+"Alien Kidnap" = "外星人绑架";
+"Drive my yacht" = "驾驶我的游艇";
+"Earth Zoom out" = "地球拉远转场";
+"Superman" = "超人";
+"Box Me" = "我的盒子";
+"Shake" = "摇晃";
+"Rat Dance" = "老鼠舞";
+"Jump to Cloud" = "腾云驾雾";
+"Emoji Me" = "变成 Emoji";

+ 16 - 0
AIEmoji/zh-Hant.lproj/Localizable.strings

@@ -565,3 +565,19 @@
 "Your creations will be listed here" = "您的作品將在這裡列出";
 "Your prompt may contain copyright infringement, nudity, gore or violence that does not comply with the Health Policy." = "您的提示可能包含侵犯版權、裸體、血腥或不符合健康政策的暴力。";
 "Create Video" = "創建視頻";
+
+"Trending Video Effect" = "熱門視頻特效";
+"AI Dance" = "AI舞蹈";
+"Creative Effect" = "創意特效";
+"Outdoor photo with greenery and a non-solid background" = "非純色帶綠植的戶外背景";
+"Solid color background" = "純色背景";
+"Popular Photo Filter" = "熱門照片濾鏡";
+"Alien Kidnap" = "外星人綁架";
+"Drive my yacht" = "駕駛我的遊艇";
+"Earth Zoom out" = "地球拉遠轉場";
+"Superman" = "超人";
+"Box Me" = "我的盒子";
+"Shake" = "搖晃";
+"Rat Dance" = "老鼠舞";
+"Jump to Cloud" = "騰雲駕霧";
+"Emoji Me" = "變成Emoji";