Files
Redesnigned-Finamp/lib/l10n/app_localizations_vi.dart
T
Zakaria d0ca84d8d2
Build / Build for Android (push) Has been cancelled
Build / Build for iOS (push) Has been cancelled
redesign app phase 1
2026-05-18 14:34:41 -04:00

735 lines
18 KiB
Dart

// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for Vietnamese (`vi`).
class AppLocalizationsVi extends AppLocalizations {
AppLocalizationsVi([String locale = 'vi']) : super(locale);
@override
String startupError(String error) {
return 'Đã xảy ra lỗi khi khởi động ứng dụng. Lỗi: $error\n\nXin hãy tạo một Issue trên github.com/UnicornsOnLSD/finamp với ảnh chụp màn hình của trang này. Nếu vấn đề tái diễn bạn có thể dọn dữ liệu ứng dụng để thiết lập lại ứng dụng.';
}
@override
String get serverUrl => 'URL của Máy chủ';
@override
String get internalExternalIpExplanation =>
'Nếu bạn muốn truy cập máy chủ Jellyfin từ xa, bạn cần phải dùng địa chỉ IP bên ngoài.\n\nNếu máy chủ của bạn đang mở cổng HTTP (cổng 80/443), bạn không cần phải chỉ rõ cổng. Đây có thể do máy chủ của bạn được set Proxy ngược.';
@override
String get emptyServerUrl => 'URL của máy chủ không thể để trống';
@override
String get urlStartWithHttps => 'URL phải bắt đầu bằng http:// hoặc https://';
@override
String get urlTrailingSlash => 'URL không được có dấu gạch chéo';
@override
String get username => 'Tên người dùng';
@override
String get password => 'Mật khẩu';
@override
String get logs => 'Nhật kí hoạt động';
@override
String get next => 'Tiếp theo';
@override
String get selectMusicLibraries => 'Chọn Thư viện Nhạc';
@override
String get couldNotFindLibraries => 'Không thể tìm thấy bất kì thư viện nào.';
@override
String get unknownName => 'Không có tên';
@override
String get songs => 'Bài hát';
@override
String get albums => 'Albums';
@override
String get artists => 'Nghệ sĩ';
@override
String get genres => 'Thể loại';
@override
String get playlists => 'Danh sách phát';
@override
String get startMix => 'Bắt đầu Mix';
@override
String get startMixNoSongsArtist =>
'Bấm giữ một nghệ sĩ để thêm hoặc loại bỏ ra khỏi bộ Mix trước khi bắt đầu một tuyển tập Mix';
@override
String get startMixNoSongsAlbum =>
'Bấm giữ một Album để thêm hoặc loại bỏ ra khỏi bộ Mix trước khi bắt đầu một tuyển tập Mix';
@override
String get music => 'Nhạc';
@override
String get clear => 'Loại bỏ';
@override
String get favourites => 'Yêu thích';
@override
String get shuffleAll => 'Trộn hết';
@override
String get finamp => 'Finamp';
@override
String get downloads => 'Tải xuống';
@override
String get settings => 'Cài đặt';
@override
String get offlineMode => 'Chế độ ngoại tuyến';
@override
String get sortOrder => 'Sắp thứ tự';
@override
String get sortBy => 'Sắp theo';
@override
String get album => 'Album';
@override
String get albumArtist => 'Album Nghệ Sĩ';
@override
String get artist => 'Nghệ sĩ';
@override
String get budget => 'Chi phí';
@override
String get communityRating => 'Đánh giá cộng đồng';
@override
String get criticRating => 'Đánh giá nhà phê bình';
@override
String get dateAdded => 'Ngày được thêm';
@override
String get datePlayed => 'Ngày phát';
@override
String get playCount => 'Số lần phát';
@override
String get premiereDate => 'Ngày phát hành';
@override
String get productionYear => 'Năm sản xuất';
@override
String get name => 'Tên';
@override
String get random => 'Ngẫu nhiên';
@override
String get revenue => 'Lợi nhuận';
@override
String get runtime => 'Thời gian phát';
@override
String get syncDownloadedPlaylists => 'Sync downloaded playlists';
@override
String get downloadMissingImages => 'Tải ảnh thiếu';
@override
String downloadedMissingImages(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Đã tải $count ảnh thiếu',
one: 'Đã tải $count ảnh thiếu',
zero: 'Không ảnh thiếu được tìm',
);
return '$_temp0';
}
@override
String get downloadErrors => 'Lỗi tải';
@override
String downloadCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count đang tải xuống',
one: '$count đang tải xuống',
);
return '$_temp0';
}
@override
String downloadedItemsCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count vật',
one: '$count vật',
);
return '$_temp0';
}
@override
String downloadedImagesCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count ảnh',
one: '$count ảnh',
);
return '$_temp0';
}
@override
String downloadedItemsImagesCount(
String downloadedItems, String downloadedImages) {
return '$downloadedItems, $downloadedImages';
}
@override
String dlComplete(int count) {
return '$count đã hoàn thành';
}
@override
String dlFailed(int count) {
return '$count thất bại';
}
@override
String dlEnqueued(int count) {
return '$count đang hàng đợi';
}
@override
String dlRunning(int count) {
return '$count đang chạy';
}
@override
String get downloadErrorsTitle => 'Lỗi tải xuống';
@override
String get noErrors => 'Không có lỗi!';
@override
String get errorScreenError =>
'Đã có lỗi xảy ra khi lấy danh sách lỗi! Bạn nên tạo một Issue trên trang Github và xoá dữ liệu ứng dụng';
@override
String get failedToGetSongFromDownloadId => 'Lấy bài hát từ ID tải Thất Bại';
@override
String deleteDownloadsPrompt(String itemName, String itemType) {
String _temp0 = intl.Intl.selectLogic(
itemType,
{
'album': 'album',
'playlist': 'playlist',
'artist': 'artist',
'genre': 'genre',
'track': 'song',
'other': '',
},
);
return 'Are you sure you want to delete the $_temp0 \'$itemName\' from this device?';
}
@override
String get deleteDownloadsConfirmButtonText => 'Delete';
@override
String get deleteDownloadsAbortButtonText => 'Cancel';
@override
String get error => 'Lỗi';
@override
String discNumber(int number) {
return 'Đĩa $number';
}
@override
String get playButtonLabel => 'PHÁT';
@override
String get shuffleButtonLabel => 'XÁO TRỘN';
@override
String songCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count bài hát',
one: '$count bài hát',
);
return '$_temp0';
}
@override
String get editPlaylistNameTooltip => 'Chỉnh sửa tên danh sách phát';
@override
String get editPlaylistNameTitle => 'Chỉnh sửa Tên Danh sách phát';
@override
String get required => 'Được yêu cầu';
@override
String get updateButtonLabel => 'CẬP NHẬT';
@override
String get playlistNameUpdated => 'Tên danh sách phát đã được cập nhật.';
@override
String get favourite => 'Yêu thích';
@override
String get downloadsDeleted => 'Đã xóa tải xuống.';
@override
String get addDownloads => 'Thêm tải xuống';
@override
String get location => 'Vị trí';
@override
String get downloadsAdded => 'Đã thêm tải xuống.';
@override
String get addButtonLabel => 'THÊM';
@override
String get shareLogs => 'Chia sẻ bản ghi';
@override
String get logsCopied => 'Đã sao chép bản ghi.';
@override
String get message => 'Tin nhắn';
@override
String get stackTrace => 'Dấu vết Ngăn xếp';
@override
String get applicationLegalese =>
'Được cấp giấy phép Mozilla Public License 2.0. Mã nguồn tại:\n\ngithub.com/jmshrv/finamp';
@override
String get transcoding => 'Chuyển Mã';
@override
String get downloadLocations => 'Vị trí tải xuống';
@override
String get audioService => 'Dịch vụ âm thanh';
@override
String get interactions => 'Interactions';
@override
String get layoutAndTheme => 'Bố cục & Chủ đề';
@override
String get notAvailableInOfflineMode => 'Không khả dụng ở chế độ ngoại tuyến';
@override
String get logOut => 'Đăng xuất';
@override
String get downloadedSongsWillNotBeDeleted =>
'Các bài hát được tải xuống sẽ không bị xoá';
@override
String get areYouSure => 'Bạn chắc chứ?';
@override
String get jellyfinUsesAACForTranscoding =>
'Jellyfin dùng codec AAC để chuyển đổi';
@override
String get enableTranscoding => 'Bật chuyển đổi';
@override
String get enableTranscodingSubtitle =>
'Chuyển đổi các luồng truyền phát nhạc trên phía máy chủ.';
@override
String get bitrate => 'Tốc độ bit';
@override
String get bitrateSubtitle =>
'Một tốc độ bit cao hơn mang lại âm thanh tốt hơn trong khi dùng băng thông lớn hơn.';
@override
String get customLocation => 'Vị trí tuỳ chỉnh';
@override
String get appDirectory => 'Đường dẫn ứng dụng';
@override
String get addDownloadLocation => 'Thêm đường dẫn tải xuống';
@override
String get selectDirectory => 'Chọn đường dẫn';
@override
String get unknownError => 'Lỗi không xác định';
@override
String get pathReturnSlashErrorMessage =>
'Đường dẫn mà trả về \"/\" không dùng được';
@override
String get directoryMustBeEmpty => 'Đường dẫn phải trống';
@override
String get customLocationsBuggy =>
'Vị trí tùy chỉnh khá nhiều lỗi do lỗi với việc cấp quyền. Tôi đang tìm biện pháp để sửa, hiện tại tôi không khuyến khích dùng chúng.';
@override
String get enterLowPriorityStateOnPause =>
'Vào trạng thái Ưu Tiên Thấp khi Dừng';
@override
String get enterLowPriorityStateOnPauseSubtitle =>
'Để thông báo được gạt đi khi dừng. Ngoài ra cho phép Android tắt dịch vụ khi dừng.';
@override
String get shuffleAllSongCount => 'Trộn tất cả bài hát';
@override
String get shuffleAllSongCountSubtitle =>
'Số lượng bài hát được tải khi dùng nút trộn tất cả bài hát.';
@override
String get viewType => 'Loại Xem';
@override
String get viewTypeSubtitle => 'Loại xem cho màn hình nhạc';
@override
String get list => 'Danh sách';
@override
String get grid => 'Lưới';
@override
String get portrait => 'Dọc';
@override
String get landscape => 'Ngang';
@override
String gridCrossAxisCount(String value) {
return '$value Số Lưới Trục-Chéo';
}
@override
String gridCrossAxisCountSubtitle(String value) {
return 'Số lượng lưới dùng mỗi hàng khi $value.';
}
@override
String get showTextOnGridView => 'Hiện thông tin trong khung lưới';
@override
String get showTextOnGridViewSubtitle =>
'Cho dù có hay không hiện thông tin (tiêu đề, nghệ sĩ,...) trên lưới nhạc.';
@override
String get showCoverAsPlayerBackground =>
'Dùng ảnh bìa mờ làm nền trình phát';
@override
String get showCoverAsPlayerBackgroundSubtitle =>
'Có hay không dùng ảnh bìa mờ làm nền trình phát trên phần phát nhạc.';
@override
String get hideSongArtistsIfSameAsAlbumArtists =>
'Ẩn tên ca sĩ bài hát nếu giống ca sĩ album';
@override
String get hideSongArtistsIfSameAsAlbumArtistsSubtitle =>
'Có hay không hiện nghệ sĩ bài hát trên phần album nếu không khác ca sĩ album.';
@override
String get disableGesture => 'Tắt cử chỉ';
@override
String get disableGestureSubtitle => 'Có nên tắt cử chỉ.';
@override
String get showFastScroller => 'Show fast scroller';
@override
String get theme => 'Chủ đề';
@override
String get system => 'Hệ thống';
@override
String get light => 'Sáng';
@override
String get dark => 'Tối';
@override
String get tabs => 'Trang';
@override
String get cancelSleepTimer => 'Tắt Đồng hồ Hẹn Giờ Ngủ?';
@override
String get yesButtonLabel => '';
@override
String get noButtonLabel => 'KHÔNG';
@override
String get setSleepTimer => 'Đặt đồng hồ hẹn giờ ngủ';
@override
String get minutes => 'Phút';
@override
String get invalidNumber => 'Số không hợp lệ';
@override
String get sleepTimerTooltip => 'Đồng hồ hẹn giờ ngủ';
@override
String get addToPlaylistTooltip => 'Thêm vào danh sách phát';
@override
String get addToPlaylistTitle => 'Thêm vào Danh sách phát';
@override
String get removeFromPlaylistTooltip => 'Loại bỏ khỏi danh sách phát';
@override
String get removeFromPlaylistTitle => 'Loại bỏ khỏi Danh sách phát';
@override
String get newPlaylist => 'Danh sách phát mới';
@override
String get createButtonLabel => 'TẠO';
@override
String get playlistCreated => 'Đã tạo danh sách phát.';
@override
String get noAlbum => 'Không có Album';
@override
String get noItem => 'Không có vật phẩm';
@override
String get noArtist => 'Không có Nghệ sĩ';
@override
String get unknownArtist => 'Nghệ sĩ không rõ';
@override
String get streaming => 'STREAMING';
@override
String get downloaded => 'ĐÃ TẢI XUỐNG';
@override
String get transcode => 'CHUYỂN MÃ';
@override
String get direct => 'TRỰC TIẾP';
@override
String get statusError => 'LỖI TRẠNG THÁI';
@override
String get queue => 'Hàng chờ';
@override
String get addToQueue => 'Thêm vào Hàng chờ';
@override
String get playNext => 'Play Next';
@override
String get replaceQueue => 'Thay thế Hàng chờ';
@override
String get instantMix => 'Instant Mix';
@override
String get goToAlbum => 'Đi tới Album';
@override
String get removeFavourite => 'Xóa yêu thích';
@override
String get addFavourite => 'Thêm vào Yêu thích';
@override
String get addedToQueue => 'Đã thêm vào hàng chờ.';
@override
String get insertedIntoQueue => 'Inserted into queue.';
@override
String get queueReplaced => 'Đã thay thế hàng chờ.';
@override
String get removedFromPlaylist => 'Đã loại bỏ khỏi danh sách.';
@override
String get startingInstantMix => 'Bắt đầu tuyển tập nhạc tức thời.';
@override
String get anErrorHasOccured => 'Đã có lỗi xảy ra.';
@override
String responseError(String error, int statusCode) {
return '$error$statusCode.';
}
@override
String responseError401(String error, int statusCode) {
return '$error$statusCode. Có thể bạn đã nhập sai tên người dùng/mật khẩu, hoặc client của bạn bị đăng xuất.';
}
@override
String get removeFromMix => 'Loại bỏ khỏi Mix';
@override
String get addToMix => 'Thêm vào Mix';
@override
String redownloadedItems(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Đã tải lại $count bài',
one: 'Đã tải lại $count bài',
zero: 'Không cần tải lại.',
);
return '$_temp0';
}
@override
String get bufferDuration => 'Thời gian bộ đệm';
@override
String get bufferDurationSubtitle =>
'Trình phát nên tạo bộ đệm trong bao lâu giây. Cần khởi động lại app.';
@override
String get language => 'Ngôn ngữ';
@override
String get confirm => 'Confirm';
@override
String get showUncensoredLogMessage =>
'This log contains your login information. Show?';
@override
String get resetTabs => 'Reset tabs';
@override
String get noMusicLibrariesTitle => 'No Music Libraries';
@override
String get noMusicLibrariesBody =>
'Finamp could not find any music libraries. Please ensure that your Jellyfin server contains at least one library with the content type set to \"Music\".';
@override
String get refresh => 'REFRESH';
@override
String get swipeInsertQueueNext => 'Play Swiped Song Next';
@override
String get swipeInsertQueueNextSubtitle =>
'Enable to insert a song as next item in queue when swiped in song list instead of appending it to the end.';
@override
String get redesignBeta => 'Try the Beta';
@override
String get playbackOrderShuffledTooltip => 'Shuffling. Tap to toggle.';
@override
String get playbackOrderLinearTooltip => 'Playing in order. Tap to toggle.';
@override
String get loopModeAllTooltip => 'Looping all. Tap to toggle.';
@override
String get loopModeOneTooltip => 'Looping one. Tap to toggle.';
@override
String get loopModeNoneTooltip => 'Not looping. Tap to toggle.';
@override
String get skipToPrevious => 'Skip to Previous Song';
@override
String get skipToNext => 'Skip to Next Song';
@override
String get togglePlayback => 'Toggle Playback';
@override
String playArtist(String artist) {
return 'Play all albums by $artist';
}
@override
String shuffleArtist(String artist) {
return 'Shuffle all albums by $artist';
}
@override
String downloadArtist(String artist) {
return 'Download all albums by $artist';
}
@override
String get deleteFromDevice => 'Delete from Device';
@override
String get download => 'Download';
@override
String get sync => 'Synchronize with Server';
@override
String get about => 'About Finamp';
}