mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-24 12:10:49 +00:00
Update localization
This commit is contained in:
parent
e27ff72830
commit
3985c538a8
@ -14341,3 +14341,30 @@ Sorry for the inconvenience.";
|
||||
|
||||
"Chat.PauseVoiceMessageTooltip" = "Pause to trim or replay.";
|
||||
"Chat.PauseVideoMessageTooltip" = "Pause to trim or replay.";
|
||||
|
||||
"Chat.TrimVoiceMessageToResume.Title" = "Trim to selected range?";
|
||||
"Chat.TrimVoiceMessageToResume.Text" = "Audio outside that range will be discarded, and recording will start immediately.";
|
||||
"Chat.TrimVoiceMessageToResume.Proceed" = "Proceed";
|
||||
|
||||
"Contacts.LimitedAccess.Text" = "You have limited Telegram from accessing all of your contacts.";
|
||||
"Contacts.LimitedAccess.Manage" = "MANAGE";
|
||||
|
||||
"Media.PhotoHdOn" = "The photo will be sent in high quality.";
|
||||
"Media.PhotoHdOff" = "The photo will be sent in standard quality.";
|
||||
|
||||
"Attachment.SendInHd" = "Send in High Quality";
|
||||
|
||||
"Share.PostToStory" = "Post\nto Story";
|
||||
|
||||
"PeerInfo.QRCode.Scan" = "Scan QR Code";
|
||||
|
||||
"PeerInfo.Topics.Title" = "Topics";
|
||||
"PeerInfo.Topics.EnableTopics" = "Enable Topics";
|
||||
"PeerInfo.Topics.EnableTopicsInfo" = "The group chat will be divided into topics created by admins or users.";
|
||||
"PeerInfo.Topics.DisplayAs" = "DISPLAY AS";
|
||||
"PeerInfo.Topics.DisplayAsInfo" = "Choose how topics appear for all members.";
|
||||
"PeerInfo.Topics.Tabs" = "Tabs";
|
||||
"PeerInfo.Topics.List" = "List";
|
||||
|
||||
"PeerInfo.OptionTopics.Enabled" = "Enabled";
|
||||
"PeerInfo.OptionTopics.Disabled" = "Disabled";
|
||||
|
@ -149,8 +149,7 @@ private enum ContactListNodeEntry: Comparable, Identifiable {
|
||||
interaction.authorize()
|
||||
})
|
||||
case .permissionLimited:
|
||||
//TODO:localize
|
||||
return LimitedPermissionItem(presentationData: ItemListPresentationData(presentationData), text: "You have limited Telegram from accessing all of your contacts.", action: {
|
||||
return LimitedPermissionItem(presentationData: ItemListPresentationData(presentationData), text: presentationData.strings.Contacts_LimitedAccess_Text, action: {
|
||||
interaction.openContactAccessPicker()
|
||||
})
|
||||
case let .option(_, option, header, _, _):
|
||||
|
@ -160,8 +160,7 @@ public class LimitedPermissionItemNode: ListViewItemNode {
|
||||
|
||||
let attributedText = NSAttributedString(string: item.text, font: textFont, textColor: item.presentationData.theme.list.itemSecondaryTextColor)
|
||||
|
||||
//TODO:localize
|
||||
let (buttonTextLayout, buttonTextApply) = makeButtonTitleLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: "MANAGE", font: Font.semibold(15.0), textColor: item.presentationData.theme.list.itemCheckColors.foregroundColor), backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
||||
let (buttonTextLayout, buttonTextApply) = makeButtonTitleLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: item.presentationData.strings.Contacts_LimitedAccess_Manage, font: Font.semibold(15.0), textColor: item.presentationData.theme.list.itemCheckColors.foregroundColor), backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
||||
|
||||
let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: attributedText, backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset - buttonTextLayout.size.width - 20.0, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
|
||||
|
||||
|
@ -1239,8 +1239,7 @@
|
||||
[self tooltipTimerTick];
|
||||
}
|
||||
|
||||
//TODO:localize
|
||||
NSString *text = hd ? @"The photo will be sent in high quality." : @"The photo will be sent in standard quality.";
|
||||
NSString *text = hd ? TGLocalized(@"Media.PhotoHdOn") : TGLocalized(@"Media.PhotoHdOff");
|
||||
[_context presentTooltip:text icon:[TGPhotoEditorInterfaceAssets qualityIconForHighQuality:hd filled: true] sourceRect:rect];
|
||||
}
|
||||
|
||||
|
@ -2719,7 +2719,7 @@ public final class MediaPickerScreenImpl: ViewController, MediaPickerScreen, Att
|
||||
}
|
||||
if price == nil {
|
||||
//TODO:localize
|
||||
items.append(.action(ContextMenuActionItem(text: "Send in High Quality", icon: { theme in
|
||||
items.append(.action(ContextMenuActionItem(text: strings.Attachment_SendInHd, icon: { theme in
|
||||
return generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/QualityHd"), color: theme.contextMenu.primaryColor)
|
||||
}, action: { [weak self] _, f in
|
||||
f(.default)
|
||||
|
@ -190,8 +190,7 @@ public final class SelectablePeerNode: ASDisplayNode {
|
||||
|
||||
switch storyMode {
|
||||
case .createStory:
|
||||
//TODO:localize
|
||||
title = "Post\nto Story"
|
||||
title = strings.Share_PostToStory
|
||||
overrideImage = .storyIcon
|
||||
case .repostStory:
|
||||
title = strings.Share_RepostStory
|
||||
|
@ -898,9 +898,8 @@ private class ChatQrCodeScreenNode: ViewControllerTracingNode, ASScrollViewDeleg
|
||||
self.doneButton.title = self.presentationData.strings.Share_ShareMessage
|
||||
}
|
||||
|
||||
//TODO:localize
|
||||
self.scanButton = SolidRoundedButtonNode(theme: SolidRoundedButtonTheme(backgroundColor: .clear, foregroundColor: self.presentationData.theme.actionSheet.controlAccentColor), font: .regular, height: 42.0, cornerRadius: 0.0, gloss: false)
|
||||
self.scanButton.title = "Scan QR Code"
|
||||
self.scanButton.title = presentationData.strings.PeerInfo_QRCode_Scan
|
||||
self.scanButton.icon = UIImage(bundleImageName: "Settings/ScanQr")
|
||||
|
||||
self.listNode = ListView()
|
||||
|
@ -75,7 +75,7 @@ final class ForumModeComponent: Component {
|
||||
ItemComponent(
|
||||
theme: component.theme,
|
||||
animation: "ForumTabs",
|
||||
title: "Tabs",
|
||||
title: component.strings.PeerInfo_Topics_Tabs,
|
||||
isSelected: component.mode == .tabs
|
||||
)
|
||||
),
|
||||
@ -104,7 +104,7 @@ final class ForumModeComponent: Component {
|
||||
ItemComponent(
|
||||
theme: component.theme,
|
||||
animation: "ForumList",
|
||||
title: "List",
|
||||
title: component.strings.PeerInfo_Topics_List,
|
||||
isSelected: component.mode == .list
|
||||
)
|
||||
),
|
||||
|
@ -153,7 +153,7 @@ final class ForumSettingsScreenComponent: Component {
|
||||
if case .legacyGroup = peer {
|
||||
let context = component.context
|
||||
let signal: Signal<EnginePeer.Id?, NoError> = context.engine.peers.convertGroupToSupergroup(peerId: peer.id, additionalProcessing: { upgradedPeerId -> Signal<Never, NoError> in
|
||||
return context.engine.peers.setChannelForumMode(id: upgradedPeerId, isForum: true, displayForumAsTabs: false)
|
||||
return context.engine.peers.setChannelForumMode(id: upgradedPeerId, isForum: true, displayForumAsTabs: displayForumAsTabs)
|
||||
})
|
||||
|> map(Optional.init)
|
||||
|> `catch` { [weak self] error -> Signal<PeerId?, NoError> in
|
||||
@ -244,11 +244,10 @@ final class ForumSettingsScreenComponent: Component {
|
||||
|
||||
let presentationData = component.context.sharedContext.currentPresentationData.with { $0 }
|
||||
|
||||
//TODO:localize
|
||||
let navigationTitleSize = self.navigationTitle.update(
|
||||
transition: transition,
|
||||
component: AnyComponent(MultilineTextComponent(
|
||||
text: .plain(NSAttributedString(string: "Topics", font: Font.semibold(17.0), textColor: environment.theme.rootController.navigationBar.primaryTextColor)),
|
||||
text: .plain(NSAttributedString(string: environment.strings.PeerInfo_Topics_Title, font: Font.semibold(17.0), textColor: environment.theme.rootController.navigationBar.primaryTextColor)),
|
||||
horizontalAlignment: .center
|
||||
)),
|
||||
environment: {},
|
||||
@ -293,7 +292,7 @@ final class ForumSettingsScreenComponent: Component {
|
||||
|
||||
contentHeight += 124.0
|
||||
|
||||
let subtitleString = NSMutableAttributedString(attributedString: parseMarkdownIntoAttributedString("The group chat will be divided into topics created by admins or users.", attributes: MarkdownAttributes(
|
||||
let subtitleString = NSMutableAttributedString(attributedString: parseMarkdownIntoAttributedString(environment.strings.PeerInfo_Topics_EnableTopicsInfo, attributes: MarkdownAttributes(
|
||||
body: MarkdownAttributeSet(font: Font.regular(15.0), textColor: environment.theme.list.freeTextColor),
|
||||
bold: MarkdownAttributeSet(font: Font.semibold(15.0), textColor: environment.theme.list.freeTextColor),
|
||||
link: MarkdownAttributeSet(font: Font.regular(15.0), textColor: environment.theme.list.itemAccentColor),
|
||||
@ -344,7 +343,7 @@ final class ForumSettingsScreenComponent: Component {
|
||||
title: AnyComponent(VStack([
|
||||
AnyComponentWithIdentity(id: AnyHashable(0), component: AnyComponent(MultilineTextComponent(
|
||||
text: .plain(NSAttributedString(
|
||||
string: "Enable Topics",
|
||||
string: environment.strings.PeerInfo_Topics_EnableTopics,
|
||||
font: Font.regular(presentationData.listsFontSize.baseDisplaySize),
|
||||
textColor: environment.theme.list.itemPrimaryTextColor
|
||||
)),
|
||||
@ -389,7 +388,7 @@ final class ForumSettingsScreenComponent: Component {
|
||||
theme: environment.theme,
|
||||
header: AnyComponent(MultilineTextComponent(
|
||||
text: .plain(NSAttributedString(
|
||||
string: "DISPLAY AS",
|
||||
string: environment.strings.PeerInfo_Topics_DisplayAs,
|
||||
font: Font.regular(presentationData.listsFontSize.itemListBaseHeaderFontSize),
|
||||
textColor: environment.theme.list.freeTextColor
|
||||
)),
|
||||
@ -397,7 +396,7 @@ final class ForumSettingsScreenComponent: Component {
|
||||
)),
|
||||
footer: AnyComponent(MultilineTextComponent(
|
||||
text: .markdown(
|
||||
text: "Choose how topics appear for all members.",
|
||||
text: environment.strings.PeerInfo_Topics_DisplayAsInfo,
|
||||
attributes: MarkdownAttributes(
|
||||
body: MarkdownAttributeSet(font: Font.regular(presentationData.listsFontSize.itemListBaseHeaderFontSize), textColor: environment.theme.list.freeTextColor),
|
||||
bold: MarkdownAttributeSet(font: Font.semibold(presentationData.listsFontSize.itemListBaseHeaderFontSize), textColor: environment.theme.list.freeTextColor),
|
||||
|
@ -2581,8 +2581,7 @@ private func editingItems(data: PeerInfoScreenData?, boostStatus: ChannelBoostSt
|
||||
}
|
||||
|
||||
if canSetupTopics {
|
||||
//TODO:localize
|
||||
let label = channel.flags.contains(.isForum) ? "Enabled" : "Disabled"
|
||||
let label = channel.flags.contains(.isForum) ? presentationData.strings.PeerInfo_OptionTopics_Enabled : presentationData.strings.PeerInfo_OptionTopics_Disabled
|
||||
items[.peerDataSettings]!.append(PeerInfoScreenDisclosureItem(id: ItemTopics, label: .text(label), text: presentationData.strings.PeerInfo_OptionTopics, icon: UIImage(bundleImageName: "Settings/Menu/Topics"), action: {
|
||||
if let topicsLimitedReason = topicsLimitedReason {
|
||||
interaction.displayTopicsLimited(topicsLimitedReason)
|
||||
@ -2710,8 +2709,7 @@ private func editingItems(data: PeerInfoScreenData?, boostStatus: ChannelBoostSt
|
||||
}
|
||||
|
||||
if canSetupTopics {
|
||||
//TODO:localize
|
||||
items[.peerPublicSettings]!.append(PeerInfoScreenDisclosureItem(id: ItemTopics, label: .text("Disabled"), text: presentationData.strings.PeerInfo_OptionTopics, icon: UIImage(bundleImageName: "Settings/Menu/Topics"), action: {
|
||||
items[.peerPublicSettings]!.append(PeerInfoScreenDisclosureItem(id: ItemTopics, label: .text(presentationData.strings.PeerInfo_OptionTopics_Disabled), text: presentationData.strings.PeerInfo_OptionTopics, icon: UIImage(bundleImageName: "Settings/Menu/Topics"), action: {
|
||||
if let topicsLimitedReason = topicsLimitedReason {
|
||||
interaction.displayTopicsLimited(topicsLimitedReason)
|
||||
} else {
|
||||
|
@ -505,11 +505,11 @@ extension ChatControllerImpl {
|
||||
self.present(
|
||||
textAlertController(
|
||||
context: self.context,
|
||||
title: "Trim to selected range?",
|
||||
text: "Audio outside that range will be discarded, and recording will start immediately.",
|
||||
title: self.presentationData.strings.Chat_TrimVoiceMessageToResume_Title,
|
||||
text: self.presentationData.strings.Chat_TrimVoiceMessageToResume_Text,
|
||||
actions: [
|
||||
TextAlertAction(type: .genericAction, title: self.presentationData.strings.Common_Cancel, action: {}),
|
||||
TextAlertAction(type: .defaultAction, title: "Proceed", action: {
|
||||
TextAlertAction(type: .defaultAction, title: self.presentationData.strings.Chat_TrimVoiceMessageToResume_Proceed, action: {
|
||||
proceed()
|
||||
})
|
||||
]
|
||||
|
Loading…
x
Reference in New Issue
Block a user