Gou*_*shi 6 camera ios ios10 xcode8
我正在使用iOS 10和使用相机拍照的应用程序.当相机视图打开时,而不是取消按钮,标题为"API_CANCEL_TITLE".当我捕捉到整个标题看到的图片时,我想要的不是这个长标题,而是看起来"取消".我使用过应用本地化.我搜索了几个链接但找不到解决方案.
这是屏幕截图:
这只发生在iOS 10中,在iOS 9中它将正常工作在这里是代码:
- (IBAction)takePicturePressed:(UIButton *)sender
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
请建议......
shc*_*shc 15
我使用BundleLocalization接近了同样的问题,
并且我已经跟踪UIImagePickerController了它,它是从一个包中获取的.
事实证明,它使用了4个"表"(在NSBundle命名法中):
CameraUI (用于相机)PhotoLibraryServices (适用于PhotoLibrary)PhotoLibrary (适用于PhotoLibrary)PhotosUI (适用于PhotoLibrary)就我而言,我必须做的就是本地化UIImagePickerController界面,它在项目中创建了几个.strings文件并对它们进行了本地化.
下面提到的文件的内容与我见过的键(标准英语值),他们是非常自我解释
CameraUI.strings"PHOTO" = "PHOTO";
"AEAF_LOCK_TEXT" = "AE/AF LOCK";
"API_CANCEL_TITLE" = "Cancel";
"HDR_AUTO" = "Auto";
"HDR_ON" = "On";
"HDR_OFF" = "Off";
"TIMER_OFF_TEXT" = "Off";
"USE_PHOTO" = "Use Photo";
Run Code Online (Sandbox Code Playgroud)
PhotoLibraryServices.strings
"PHOTOS" = "Photos";
"CAMERA_ROLL" = "Camera roll";
"ALL_SCREENSHOTS" = "Screenshots";
Run Code Online (Sandbox Code Playgroud)
PhotoLibrary.strings
"CANCEL" = "Cancel";
"RETAKE" = "Retake";
"STREAM_SHARED_BY_ME_SUBTITLE" = "From You";
"STREAM_SHARED_BY_SUBTITLE" = "From %@";
"ALBUM_IMAGE_COUNT_FORMAT" = "%@ Photos";
"ALBUM_VIDEO_COUNT_FORMAT" = "%@ Videos";
"1_ALBUM_PHOTO" = "1 Photo";
"1_ALBUM_VIDEO" = "1 Video";
"ALBUM_TWO_TYPES_LABEL_COMMAS" = "%@, %@";
Run Code Online (Sandbox Code Playgroud)
PhotosUI.strings
"ALL_PHOTOS_IN_LIBRARY" = "Moments";
"PXUserCollectionsSectionTitle" = "My Albums";
"FULL_PHOTOS_GRID_ZOOM_LEVEL_TITLE" = "Moments";
"NO_PHOTOS_OR_VIDEOS" = "No Photos or Videos";
"EMPTY_ALBUM_LIST_MESSAGE_iPhone" = "You can take photos and videos using camera, or sync photos and videos onto your iPhone using iTunes";
Run Code Online (Sandbox Code Playgroud)
小智 5
在此捆绑包扩展上,您需要检查 tableName 中的 CameraUI。\n使用该方法将“Api_Cancel_title”键的值更改为“Cancel”\n使用您自己的本地化值,其中您曾经声明过自己的值
\n\n例如
\n\n英语 "API_CANCEL_TITLE" = "取消";
\n\n印地语 "API_CANCEL_TITLE" = "\xe0\xa4\xb0\xe0\xa4\xa6\xe0\xa5\x8d\xe0\xa4\xa6 \xe0\xa4\x95\xe0\xa4\xb0\xe0\xa4\xa8\xe0 \xa4\xbe";
\n\n法语 "API_CANCEL_TITLE" = "Annuler";
\n\n// MARK: - Bundle Extension\n\nextension Bundle {\n\n @objc func specialLocalizedStringForKey(_ key: String, value: String?, table tableName: String?) -> String {\n let currentLanguage = CSLanguage.currentAppleLanguage()\n var bundle = Bundle.main\n if let path = Bundle.main.path(forResource: currentLanguage, ofType: "lproj") {\n bundle = Bundle.init(path: path)!\n } else {\n let basePath = Bundle.main.path(forResource: "Base", ofType: "lproj")\n bundle = Bundle.init(path: basePath!)!\n }\n if let name = tableName, name == "CameraUI"{\n let values = NSLocalizedString(key, comment: name)\n\n return values\n }\n if let name = tableName, name == "PhotoLibrary"{\n let values = NSLocalizedString(key, comment: name)\n\n return values\n }\n if let name = tableName, name == "PhotoLibraryServices"{\n let values = NSLocalizedString(key, comment: name)\n\n return values\n }\n if let name = tableName, name == "PhotosUI"\n {\n let values = NSLocalizedString(key, comment: name)\n\n return values\n }\n return bundle.specialLocalizedStringForKey(key, value: value, table: tableName)\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1921 次 |
| 最近记录: |