feat(products): implement professional product management experience
Products dashboard (real total/published/drafts/out-of-stock/hidden/missing-images/missing-SEO/low-quality counts, recently-edited list, recommended next action); list gains table/grid view toggle, density, saved column visibility and saved sort (persisted via LocalStorageService), plus real bulk assign-category/assign-tags/duplicate/CSV-export alongside existing publish/hide/delete; per-row and per-editor reusable ProductHealthWidget (images/SEO/price/category/description/inventory checklist + completion %); editor reorganized into General/Media/Pricing/Inventory/Categories/Attributes/SEO/Visibility/Advanced tabs, media now uses the shared MediaPickerComponent/ImageFieldComponent (primary image + reorderable gallery) instead of raw URL textareas, specifications/attributes/variants moved off pipe-delimited textareas onto the shared KeyValueEditorComponent, SEO tab explains fields in plain language with a live search-result preview, inventory relabeled in business language, toggles/badges use the shared Toggle/Badge components. Filled in the adminProducts i18n namespace (previously ~98% missing, rendering raw translation keys) across en/ru/hy.
This commit is contained in:
@@ -1220,6 +1220,141 @@ export const hy: Translations = {
|
||||
adminProducts: {
|
||||
emptyTitle: 'Ապրանքներ չեն գտնվել',
|
||||
emptyDescription: 'Փոխեք ֆիլտրերը կամ ստեղծեք նոր ապրանք։',
|
||||
emptyGuide: 'Լավ ապրանքին բավական է հստակ վերնագիր, առնվազն մեկ լուսանկար, գին և կարճ նկարագրություն՝ հրապարակելու համար։ Մնացածը կարող եք ավելացնել հետո։',
|
||||
search: 'Փնտրել ապրանքներ…',
|
||||
category: 'Կատեգորիա',
|
||||
allCategories: 'Բոլոր կատեգորիաները',
|
||||
visibility: 'Տեսանելիություն',
|
||||
allVisibility: 'Ցանկացած տեսանելիություն',
|
||||
visible: 'Տեսանելի',
|
||||
hidden: 'Թաքցված',
|
||||
stockStatus: 'Պահեստի կարգավիճակ',
|
||||
allStock: 'Ցանկացած մնացորդ',
|
||||
inStock: 'Առկա է',
|
||||
lowStock: 'Քիչ է մնացել',
|
||||
outOfStock: 'Առկա չէ',
|
||||
sortTitle: 'Անուն',
|
||||
sortPrice: 'Գին',
|
||||
sortPriority: 'Առաջնահերթություն',
|
||||
sortStock: 'Մնացորդ',
|
||||
sortUpdated: 'Վերջին փոփոխություն',
|
||||
showArchived: 'Ցույց տալ արխիվայինները',
|
||||
infiniteScroll: 'Անվերջ ոլորում',
|
||||
viewMode: 'Տեսք',
|
||||
viewTable: 'Աղյուսակ',
|
||||
viewGrid: 'Ցանց',
|
||||
density: 'Խտություն',
|
||||
densityComfortable: 'Հարմարավետ',
|
||||
densityCompact: 'Կոմպակտ',
|
||||
columns: 'Սյունակներ',
|
||||
column_sku: 'SKU',
|
||||
column_brand: 'Ապրանքանիշ',
|
||||
column_price: 'Գին',
|
||||
column_stock: 'Մնացորդ',
|
||||
column_visibility: 'Տեսանելիություն',
|
||||
column_updated: 'Վերջին փոփոխություն',
|
||||
create: 'Ստեղծել ապրանք',
|
||||
edit: 'Խմբագրել ապրանքը',
|
||||
duplicate: 'Կրկնօրինակել',
|
||||
selectedCount: 'ընտրված է',
|
||||
bulkShow: 'Հրապարակել',
|
||||
bulkHide: 'Թաքցնել',
|
||||
bulkAssignCategory: 'Նշանակել կատեգորիա',
|
||||
bulkAssignTags: 'Նշանակել պիտակներ',
|
||||
bulkDuplicateAction: 'Կրկնօրինակել',
|
||||
bulkExportAction: 'Արտահանել',
|
||||
bulkDelete: 'Ջնջել',
|
||||
tagsPlaceholder: 'օր․՝ ամառ, զեղչ',
|
||||
name: 'Անուն',
|
||||
brand: 'Ապրանքանիշ',
|
||||
healthColumn: 'Որակ',
|
||||
actions: 'Գործողություններ',
|
||||
archive: 'Արխիվացնել',
|
||||
delete: 'Ջնջել',
|
||||
items: 'ապրանք',
|
||||
loadMore: 'Բեռնել ավելին',
|
||||
noImage: 'Առանց պատկերի',
|
||||
slug: 'URL հասցե',
|
||||
barcode: 'Շտրիխկոդ',
|
||||
priority: 'Առաջնահերթություն',
|
||||
shortDescription: 'Կարճ նկարագրություն',
|
||||
translations: 'Թարգմանություններ',
|
||||
primaryImage: 'Հիմնական պատկեր',
|
||||
primaryImageHint: 'Հիմնական լուսանկարը, որ երևում է ցանկերում և որոնման արդյունքներում։',
|
||||
gallery: 'Պատկերասրահ',
|
||||
galleryHint: 'Լրացուցիչ լուսանկարներ ապրանքի էջում։ Կարգը փոխեք սլաքներով։',
|
||||
moveLeft: 'Տեղափոխել ավելի վաղ',
|
||||
moveRight: 'Տեղափոխել ավելի ուշ',
|
||||
videos: 'Տեսանյութեր (մեկ հղում մեկ տողում)',
|
||||
discount: 'Զեղչ %',
|
||||
currency: 'Արժույթ',
|
||||
stockQuantity: 'Պահեստի քանակ',
|
||||
stockQuantityHint: 'Քանի հատ է հասանելի վաճառքի համար հենց հիմա։',
|
||||
availabilityStatus: 'Հասանելիություն',
|
||||
availabilityStatusHint: 'Ինչ է տեսնում հաճախորդը՝ առկա է, քիչ է մնացել, թե առկա չէ։',
|
||||
availabilityNote: 'Հասանելիության նշում',
|
||||
availabilityNoteHint: 'Լրացուցիչ մանրամասն հաճախորդի համար, օր․՝ «Առաքում 3 օրում»։',
|
||||
reservedNote: 'Ամրագրված պաշարը դեռ առանձին չի հաշվառվում․ այստեղ ցուցադրվում է ընդհանուր հասանելի քանակը։',
|
||||
relatedProducts: 'Առնչվող ապրանքներ',
|
||||
specifications: 'Բնութագրեր',
|
||||
attributes: 'Հատկանիշներ',
|
||||
addRow: 'Ավելացնել տող',
|
||||
removeRow: 'Հեռացնել',
|
||||
rowKey: 'Անուն',
|
||||
rowValue: 'Արժեք',
|
||||
addVariant: 'Ավելացնել տարբերակ',
|
||||
variantName: 'Տարբերակի անուն',
|
||||
variantsHint: 'Յուրաքանչյուր տարբերակ այս ապրանքի առանձին գնվող տարբերակ է (օր․՝ չափս կամ գույն)՝ իր գնով և մնացորդով։',
|
||||
seoExplain: 'Սա այն է, ինչ երևում է որոնման արդյունքներում․ հստակ վերնագիրն ու նկարագրությունը օգնում են գտնել այս ապրանքը։',
|
||||
searchTitle: 'Որոնման վերնագիր',
|
||||
searchTitleHint: 'Վերնագիրը, որ երևում է որոնման արդյունքներում։ Պահեք կարճ։',
|
||||
searchDescription: 'Որոնման նկարագրություն',
|
||||
searchDescriptionHint: 'Կարճ նկարագրություն՝ վերնագրի տակ, որոնման արդյունքներում։',
|
||||
seoMissingTitle: 'Ավելացրեք որոնման վերնագիր, որպեսզի ապրանքը գտնվի։',
|
||||
seoMissingDescription: 'Ավելացրեք որոնման նկարագրություն՝ ապրանքի ցուցադրումը բարելավելու համար։',
|
||||
keywords: 'Հիմնաբառեր',
|
||||
featured: 'Ընտրված',
|
||||
recommended: 'Երաշխավորված',
|
||||
new: 'Նոր',
|
||||
bestseller: 'Բեսթսելլեր',
|
||||
badges: 'Կրծքանշաններ (ստորակետերով)',
|
||||
htmlDescription: 'Մանրամասն նկարագրություն',
|
||||
customer: 'Հաճախորդների արձագանք',
|
||||
reviewsReadonly: 'Կարծիքներ',
|
||||
noReviews: 'Կարծիքներ դեռ չկան։',
|
||||
questionsReadonly: 'Հարցեր',
|
||||
noQuestions: 'Հարցեր դեռ չկան։',
|
||||
save: 'Պահպանել ապրանքը',
|
||||
groupGeneral: 'Հիմնական',
|
||||
groupMedia: 'Մեդիա',
|
||||
groupPricing: 'Գին',
|
||||
groupInventory: 'Պահեստ',
|
||||
groupCategories: 'Կատեգորիաներ',
|
||||
groupAttributes: 'Հատկանիշներ',
|
||||
groupSeo: 'SEO',
|
||||
groupVisibility: 'Տեսանելիություն',
|
||||
groupAdvanced: 'Լրացուցիչ',
|
||||
healthImages: 'Պատկերներ',
|
||||
healthSeo: 'SEO',
|
||||
healthPrice: 'Գին',
|
||||
healthCategory: 'Կատեգորիա',
|
||||
healthDescription: 'Նկարագրություն',
|
||||
healthInventory: 'Պահեստ',
|
||||
totalProducts: 'Ընդհանուր ապրանքներ',
|
||||
publishedCount: 'Հրապարակված',
|
||||
draftsCount: 'Սևագրեր',
|
||||
outOfStockCount: 'Առկա չէ',
|
||||
hiddenCount: 'Թաքցված',
|
||||
missingImagesCount: 'Առանց պատկերի',
|
||||
missingSeoCount: 'Առանց SEO-ի',
|
||||
lowQualityCount: 'Ցածր որակի',
|
||||
recentlyEdited: 'Վերջերս խմբագրված',
|
||||
recommendedNext: 'Հաջորդ առաջարկվող քայլը',
|
||||
openAction: 'Բացել',
|
||||
recommendAddImages: 'Ապրանքը լուսանկար չունի․ ավելացրեք առնվազն մեկ պատկեր։',
|
||||
recommendAddSeo: 'Ապրանքը չունի որոնման վերնագիր կամ նկարագրություն․ ավելացրեք դրանք։',
|
||||
recommendRestock: 'Ապրանքը սպառված է․ համալրեք պաշարը կամ թաքցրեք այն։',
|
||||
recommendNone: 'Հիանալի է․ կատալոգը լավ վիճակում է։',
|
||||
},
|
||||
adminUsers: {
|
||||
emptyTitle: 'Օգտատերեր չեն գտնվել',
|
||||
|
||||
Reference in New Issue
Block a user