PDA

View Full Version : سوال: فارسی کردن مقادیر فیلتر جدول Telerik و ست کردن فونت فارسی برای جدول تلریک



MasoudAdmin
پنج شنبه 12 مرداد 1402, 08:56 صبح
با سلام
من در صفحه وبم از جدول RadGrid Telerik استفاده کردم. داکیومنت های زیادی هم مطالعه کردم ولی روش های که گفته شد بود اعمال نمی شد. چجوری میتونم مقادیری که در فیلتر هست از انگلیسی به فارسی تبدیل کنم.
مثلا
equals رو مساوی نمایش بده یا contain رو شامل نمایش بده. ضمن اینکه Culture رو از en-US به fa-IR هم تغییر دادم ولی تغییری نکرد.

ضمنا این مورد رو هم در صفحه وبم اضافه کردم


<style>
@font-face{
font-family: IRANSans;
src: url("../../FontsFiles/IRANSansWeb.woff2") format("woff2");
}
body{
font-family: IRANSans;
direction: rtl;
text-align: right;
}
</style>


همه صفحه وبم فونتش به IRANSansWeb تبدیل شده ولی این جدول Telerik این فونت رو نگرفته.

ممنون میشم راهنمایی کنید.
با تشکر

mazoolagh
شنبه 14 مرداد 1402, 08:20 صبح
سلام و روز خوش

1- باید telerik asp.net radgrid localization رو گوگل میکردین و مستقیما به پاسخ میرسیدین:

Telerik Web UI Grid Localization Demo | Telerik UI for ASP.NET AJAX (https://demos.telerik.com/aspnet-ajax/grid/examples/accessibility-and-internationalization/localization/defaultcs.aspx)

که کاملا دقیق روش کار رو با کد نمونه توضیح داده.

2- اون style هیچ تاثیری در خواسته شما نداره و اصولا بی ربط هست.

3- توضیحات همین مثال رو اگر با دقت بخونین نوشته که علاوه بر تعیین culture ، لازم هست که فایل(های) resource متناظر هم بسازین و به پروژه اضافه کنین.

MasoudAdmin
شنبه 14 مرداد 1402, 19:25 عصر
سلام و ممنون
بله عرض کردم داکیمونت ها رو مطالعه کردم. حتی کد دمو رو دانلود کردم ولی به جایی نرسیدم. الان من فقط مشکلم ساختن فایل resource هست. اینو چجوری باید کار کنم؟
تو ویندوز اپلیکیشن یه کلاس تعریف می کردم و به پروژه اضافه می کردم.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Telerik;
using Telerik.WinControls.UI;
using Telerik.WinControls.UI.Localization;


namespace PersianLocalization
{
public class PersianRadGridLocalizationProvider : RadGridLocalizationProvider
{
public override string GetLocalizedString(string id)
{
switch (id)
{
case RadGridStringId.FilterFunctionBetween:
return "بين"; //Between
case RadGridStringId.FilterOperatorBetween:
return "بين";
case RadGridStringId.FilterFunctionContains:
return "شامل";
case RadGridStringId.FilterOperatorContains:
return "";
case RadGridStringId.FilterFunctionDoesNotContain:
return "شامل نشود"; //Does not contain
case RadGridStringId.FilterOperatorDoesNotContain:
return "شامل نشود";
case RadGridStringId.FilterFunctionEndsWith:
return "پايان پذيرد با"; //Ends with
case RadGridStringId.FilterOperatorEndsWith:
return "پايان پذيرد با";
case RadGridStringId.FilterFunctionEqualTo:
return "برابر با"; //Equals
case RadGridStringId.FilterOperatorEqualTo:
return "برابر با";
case RadGridStringId.FilterFunctionGreaterThan:
return "بزرگتر از"; //Greater than
case RadGridStringId.FilterOperatorGreaterThan:
return "بزرگتر از";
case RadGridStringId.FilterFunctionGreaterThanOrEqualTo :
return "بزرگتر يا مساوي با"; //Greater than or equal to
case RadGridStringId.FilterOperatorGreaterThanOrEqualTo :
return "بزرگتر يا مساوي با";
case RadGridStringId.FilterFunctionIsEmpty:
return "خالي باشد"; //Is empty
case RadGridStringId.FilterOperatorIsEmpty:
return "خالي باشد";
case RadGridStringId.FilterFunctionIsNull:
return "باشد null"; //Is null
case RadGridStringId.FilterOperatorIsNull:
return "باشد null";
case RadGridStringId.FilterFunctionLessThan:
return "کمتر از"; //Less than
case RadGridStringId.FilterOperatorLessThan:
return "کمتر از";
case RadGridStringId.FilterFunctionLessThanOrEqualTo:
return "کمتر يا مساوي با"; //Less than or equal to
case RadGridStringId.FilterOperatorLessThanOrEqualTo:
return "کمتر يا مساوي با";
case RadGridStringId.FilterFunctionNoFilter:
return "بدون شرط"; //No filter
case RadGridStringId.FilterOperatorNoFilter:
return "بدون شرط";
case RadGridStringId.FilterFunctionNotBetween:
return "نباشد بين"; //Not between
case RadGridStringId.FilterOperatorNotBetween:
return "نباشد بين"; //Operator
case RadGridStringId.FilterFunctionNotEqualTo:
return "برابر نباشد با"; //Not equal to
case RadGridStringId.FilterOperatorNotEqualTo:
return "برابر نباشد با";
case RadGridStringId.FilterFunctionNotIsEmpty:
return "خالي نباشد"; //Is not empty
case RadGridStringId.FilterFunctionNotIsNull:
return "نباشد null"; //Is not null
case RadGridStringId.FilterFunctionStartsWith:
return "شروع شود با"; //Starts with
case RadGridStringId.FilterFunctionCustom:
return "شرط دلخواه"; //Custom
case RadGridStringId.CustomFilterMenuItem:
return "شرط دلخواه منو"; //Custom
case RadGridStringId.CustomFilterDialogCaption:
return "انتخاب شرط دلخواه"; //RadGridView Custom Filter Dialog
case RadGridStringId.CustomFilterDialogLabel:
return ":نشان دادن سطرهايي که"; //Show rows where:
case RadGridStringId.CustomFilterDialogRbAnd:
return "و"; //And
case RadGridStringId.CustomFilterDialogRbOr:
return "يا"; //Or
case RadGridStringId.CustomFilterDialogBtnOk:
return "تاييد"; //OK
case RadGridStringId.CustomFilterDialogBtnCancel:
return "انصراف"; //Cancel
case RadGridStringId.AddNewRowString:
return "";
case RadGridStringId.ClearValueMenuItem:
return "پاک کردن مقدار سلول";
case RadGridStringId.DeleteRowMenuItem:
return "حذف سطر"; //Delete Row
case RadGridStringId.SortAscendingMenuItem:
return "مرتب سازي صعودي"; //Sort Ascending
case RadGridStringId.SortDescendingMenuItem:
return "مرتب سازي نزولي"; //Sort Descending
case RadGridStringId.ClearSortingMenuItem:
return "حذف مرتب سازي"; //Clear Sorting
case RadGridStringId.ConditionalFormattingMenuItem:
return "قالب بندي مشروط"; //Conditional Formatting
case RadGridStringId.GroupByThisColumnMenuItem:
return "گروهبندي بر حسب اين ستون"; //Group by this column
case RadGridStringId.UngroupThisColumn:
return "حذف اين ستون از گروهبندي "; //Ungroup this column
case RadGridStringId.ColumnChooserMenuItem:
return "انتخابگر ستون"; //Column Chooser
case RadGridStringId.HideMenuItem:
return "مخفي کردن ستون"; //Hide
case RadGridStringId.UnpinMenuItem:
return "حالت پيش فرض"; //Unpin
case RadGridStringId.PinMenuItem:
return "حالت ستون"; //Pin
case RadGridStringId.PinAtLeftMenuItem:
return "چسپيدن به سمت چپ";
case RadGridStringId.PinAtRightMenuItem:
return "چسپيدن به سمت راست";
case RadGridStringId.PinAtTopMenuItem:
return "چسپيدن به بالا";
case RadGridStringId.PinAtBottomMenuItem:
return "چسپيدن به پايين";
case RadGridStringId.BestFitMenuItem:
return "اندازه بهينه ستون"; //Best Fit
case RadGridStringId.PasteMenuItem:
return "چسپاندن"; //Paste
case RadGridStringId.EditMenuItem:
return "ويرايش"; //Edit
case RadGridStringId.CopyMenuItem:
return "کپي"; //Copy
case RadGridStringId.ConditionalFormattingCaption:
return "قالب بندي مشروط"; //Custom Formatting Condition Editor
case RadGridStringId.ConditionalFormattingLblColumn:
return "قالب بندي سلولهايي با شرط:"; //Column:
case RadGridStringId.ConditionalFormattingLblName:
return "نام شرط:"; //Name:
case RadGridStringId.ConditionalFormattingLblType:
return "مقدار سلول:"; //Type:
case RadGridStringId.ConditionalFormattingLblValue1:
return "مقدار اول:"; //Value 1:
case RadGridStringId.ConditionalFormattingLblValue2:
return "مقدار دوم:"; //Value 2:
case RadGridStringId.ConditionalFormattingGrpConditions :
return "شرايط"; //Conditions
case RadGridStringId.ConditionalFormattingGrpProperties :
return "مشخصات"; //Properties
case RadGridStringId.ConditionalFormattingChkApplyToRow :
return "اعمال اين شرط به کل سطر"; //Apply to row
case RadGridStringId.ConditionalFormattingBtnAdd:
return "افزودن شرايط"; //Add
case RadGridStringId.ConditionalFormattingBtnRemove:
return "حذف شرايط انتخابي"; //Remove
case RadGridStringId.ConditionalFormattingBtnOK:
return "تاييد"; //OK
case RadGridStringId.ConditionalFormattingBtnCancel:
return "انصراف"; //Cancel
case RadGridStringId.ConditionalFormattingBtnApply:
return "اعمال قالب بندي"; //Apply
case RadGridStringId.ColumnChooserFormCaption:
return "انتخاب ستون ها"; //Column Chooser
case RadGridStringId.ColumnChooserFormMessage:
return "براي حذف يکي از ستونها، آن ستون را به اينجا بکشيد"; //"Drag a column header from the grid here to remove it from the current view.";
case RadGridStringId.CompositeFilterFormErrorCaption:
return "خطا";
case RadGridStringId.ConditionalFormattingChooseOne:
return "[يکي را انتخاب کنيد]";
case RadGridStringId.ConditionalFormattingContains:
return "[حاوي [مقدار اول";
case RadGridStringId.ConditionalFormattingDoesNotContai n:
return "حاوي [مقدار اول] نباشد";
case RadGridStringId.ConditionalFormattingEndsWith:
return "با [مقدار اول] پايان يابد";
case RadGridStringId.ConditionalFormattingEqualsTo:
return "[برابر با [مقدار اول";
case RadGridStringId.ConditionalFormattingIsBetween:
return "بين [مقدار اول] و [مقدار دوم] باشد";
case RadGridStringId.ConditionalFormattingIsGreaterThan :
return "[بزرگتر از [مقدار اول";
case RadGridStringId.ConditionalFormattingIsGreaterThan OrEqual:
return "[بزرگتر يا مساوي با [مقدار اول";
case RadGridStringId.ConditionalFormattingIsLessThan:
return "کوچکتر از [مقدار اول]";
case RadGridStringId.ConditionalFormattingIsLessThanOrE qual:
return "کوچکتر يا مساوي با [مقدار اول]";
case RadGridStringId.ConditionalFormattingIsNotBetween:
return "بين [مقدار اول] و [مقدار دوم] نباشد";
case RadGridStringId.ConditionalFormattingIsNotEqualTo:
return "برابر با [مقدار اول] نباشد";
case RadGridStringId.ConditionalFormattingRuleAppliesOn :
return "اعمال شرايط روي:";
case RadGridStringId.ConditionalFormattingStartsWith:
return "با [مقدار اول] شروع مي شود";
case RadGridStringId.CustomFilterDialogCheckBoxNot:
return "با اين شرايط نباشد";
case RadGridStringId.CustomFilterDialogFalse:
return "False";
case RadGridStringId.CustomFilterDialogTrue:
return "True";
case RadGridStringId.FilterCompositeNotOperator:
return "نباشد";
case RadGridStringId.FilterLogicalOperatorAnd:
return "و";
case RadGridStringId.FilterLogicalOperatorOr:
return "يا";
case RadGridStringId.FilterMenuAvailableFilters:
return "فيلتر شده";
case RadGridStringId.FilterMenuButtonCancel:
return "انصراف";
case RadGridStringId.FilterMenuButtonOK:
return "تاييد";
case RadGridStringId.FilterMenuClearFilters:
return "پاک کردن فيلتر";
case RadGridStringId.FilterMenuSearchBoxText:
return "جستجو...";
case RadGridStringId.FilterMenuSelectionAll:
return "همه";
case RadGridStringId.FilterMenuSelectionAllSearched:
return "نتيجه همه جستجو";
case RadGridStringId.FilterMenuSelectionNotNull:
return "نباشد null";
case RadGridStringId.FilterMenuSelectionNull:
return "باشد null";
case RadGridStringId.FilterOperatorCustom:
return "دلخواه";
case RadGridStringId.FilterOperatorIsLike:
return "مانند";
case RadGridStringId.FilterOperatorNotIsContainedIn:
return "نباشد در";
case RadGridStringId.FilterOperatorNotIsEmpty:
return "خالي نباشد";
case RadGridStringId.FilterOperatorNotIsLike:
return "نباشد شبيه";
case RadGridStringId.FilterOperatorNotIsNull:
return "نباشد null";
case RadGridStringId.FilterOperatorStartsWith:
return "شروع شود با";
case RadGridStringId.GroupingPanelDefaultMessage:
return "براي گروه بندي ستون ها، ستوني را به اينجا بکشيد";
case RadGridStringId.GroupingPanelHeader:
return ":گروهبندي بر حسب";
case RadGridStringId.NoDataText:
return "داده اي براي نمايش وجود ندارد";
case RadGridStringId.UnpinRowMenuItem:
return "حالت پيش فرض";


default:
return base.GetLocalizedString(id);
}
}
}
}


الان تو وب بلد نیستم مشابه این کار رو انجام بدم.
ممنون میشم راهنمایی کنید.

mazoolagh
یک شنبه 15 مرداد 1402, 09:53 صبح
سلام دوباره

طبق اونچه که در همون لینک دمو تلریک اومده:
154840

و آموزش کامل همراه با شکل در لینک زیر عمل کنین:

RadGrid localization with global resources (https://docs.telerik.com/devtools/aspnet-ajax/controls/grid/accessibility-and-internationalization/localization-through-global-resources)

اونجا قشنگ توضیح داده که:
1- فولدر App_GlobalResources رو به پروژه اضافه کنین (خود ویژوال استودیو میسازه)
2- از محل نصب برنامه تلریک، فایل های ریسورس مربوط به کنترل رو به این فولدر کپی کنین
3- یک کپی با اضافه کردن اسم کالچر خودتون ازش بسازین و پیام هاش رو ادیت کنین (نمونه های کالچرهای دیگه رو همونجا ببینین تا روش نامگذاری دستتون بیاد)
4- حالا کافی هست کالچر کنترل (یا page) رو مشخص کنین.

همین!

MasoudAdmin
دوشنبه 16 مرداد 1402, 19:35 عصر
ممنون از راهنمایی تون. درست شد.
فقط واسه اینکه فونت های جدول هم به IRANSansWeb.woff2 تغییر کند چه باید بکنم. الان فونت پیش فرض خود تلریک هست.
میخوام فونت جدول رو هم فارسی کنم.
اینم ممنون میشم راهنمایی کنید.

mazoolagh
سه شنبه 17 مرداد 1402, 13:48 عصر
خب خبر خوبی بود و خوشحالم نتیجه گرفتین.

برای تغییر فونت:
اگر خود گرید یک پراپرتی فونت داره ولی با تغییر اون نتیجه نمیگیرین احتمالا به این دلیل هست که برای هر بخش اون یک استایل جدا (با توجه به پوسته و ...) تعریف شده که اون موثر هست.
حالا 2 راه به نظرم میرسه:

1- telerik asp.net radgrid custom style|skin|appearance رو گوگل کنین و ببینین شاید مستقیما استایل شیت ها رو بهتون بده

2- در مرورگر روی اون بخش راست کلیک و inspect element بزنین و استایل رو چک کنین، بعد خودتون استایل برای اون بخش بنویسین.