The app is FTStore Admin. Its own AGENTS.md already sets the vocabulary — "the FTStore Admin server" for web/, "the FTStore Admin app" for this one — and then most of the comments in it said "the console" anyway. Three user-visible strings went with it: the lock screen, the menu item that locks it, and the biometric prompt. The storage-notification footer named the console too. Their catalog keys move with them, in every locale the app ships. Not "the app": inside these files that already means FTStore on somebody's phone, so a blind swap produced lines like "Dashboard and app only, never the app". AdminConsoleView is AdminHomeView. The Console/ directory keeps its name: the history of Console/*.swift runs back through manager/FTStore/Admin/ and is documented as doing so, which is worth more than a path nobody reads as a name. Also fills a translation gap this turned up — the status-change footer in the feedback detail was untranslated.
31 lines
937 B
Swift
31 lines
937 B
Swift
//
|
|
// TelegramMark.swift
|
|
// FTStore Admin
|
|
//
|
|
// The Telegram logo, as a tintable template image.
|
|
//
|
|
// Every "this came from Telegram" affordance in FTStore Admin used to draw SF
|
|
// Symbols' `paperplane`, which is a generic outlined plane and reads as "send"
|
|
// rather than as Telegram. The real mark ships in the asset catalog
|
|
// (`Assets.xcassets/Telegram.imageset`, a vector SVG with template rendering),
|
|
// so it tints from the surrounding `foregroundStyle` exactly like a symbol.
|
|
//
|
|
// Unlike an SF Symbol it does not scale itself off the ambient font, so the
|
|
// size is explicit at every call site. `size` is a point value chosen to sit
|
|
// optically level with the text next to it.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct TelegramMark: View {
|
|
var size: CGFloat = 16
|
|
|
|
var body: some View {
|
|
Image("Telegram")
|
|
.renderingMode(.template)
|
|
.resizable()
|
|
.aspectRatio(contentMode: .fit)
|
|
.frame(width: size, height: size)
|
|
}
|
|
}
|