استخدام فئة ChartGlobalizationSettings لتعيين لغة مختلفة لمكون الرسم البياني مع C++

سيناريوهات الاستخدام المحتملة

قد قامت واجهات برمجة التطبيقات Aspose.Cells بفتح فئة ChartGlobalizationSettings للتعامل مع السيناريوهات التي يرغب المستخدم في تعيين عنصر رسم بياني إلى لغة مختلفة وتخصيص التسميات المخصصة للمجموعات الفرعية في جدول بيانات.

مقدمة في فئة ChartGlobalizationSettings

تقدم فئة ChartGlobalizationSettings حاليًا الطرق التالية الثمانية التي يمكن تجاوزها في فئة مخصصة لترجمة مثل اسم AxisTitle، واسم AxisUnit، واسم ChartTitle، وما إلى ذلك إلى لغات مختلفة.

  1. GetAxisTitleName: يحصل على اسم العنوان للمحور.
  2. GetAxisUnitName: يحصل على اسم وحدة المحور.
  3. GetChartTitleName: يحصل على اسم عنوان الرسم البياني.
  4. GetLegendDecreaseName: يحصل على اسم الانخفاض لوحة التفسير.
  5. GetLegendIncreaseName: يحصل على اسم الزيادة لوحة التفسير.
  6. GetLegendTotalName: يحصل على اسم الإجمالي لوحة التفسير.
  7. GetOtherName: يحصل على اسم تسميات “أخرى” للرسم البياني.
  8. GetSeriesName: يحصل على اسم السلاسل في الرسم البياني.

ترجمة لغة مخصصة

هنا، سنقوم بإنشاء رسم بياني شلالي استنادًا إلى البيانات التالية. سيتم عرض أسماء مكونات الرسم البياني باللغة الإنجليزية في الرسم البياني. سنستخدم مثال باللغة التركية لنريك كيفية عرض عنوان الرسم البياني وأسماء زيادة/انخفاض لوحة التفسير واسم الإجمالي وعنوان المحور باللغة التركية.

todo:image_alt_text

الكود المثالي

يقوم الكود العيني التالي بتحميل ملف Excel العيني.

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Charts;

class TurkeyChartGlobalizationSettings : public ChartGlobalizationSettings
{
public:
    TurkeyChartGlobalizationSettings() : ChartGlobalizationSettings() {}

    U16String GetChartTitleName() override
    {
        return u"Grafik Başlığı"; // Chart Title
    }

    U16String GetLegendIncreaseName() override
    {
        return u"Artış"; // Increase
    }

    U16String GetLegendDecreaseName() override
    {
        return u"Düşüş"; // Decrease
    }

    U16String GetLegendTotalName() override
    {
        return u"Toplam"; // Total
    }

    U16String GetAxisTitleName() override
    {
        return u"Eksen Başlığı"; // Axis Title
    }
};

void ChartGlobalizationSettingsTest()
{
    // Create an instance of existing Workbook
    U16String pathName = u"input.xlsx";
    Workbook workbook(pathName);

    // Set custom chartGlobalizationSettings, here is TurkeyChartGlobalizationSettings
    TurkeyChartGlobalizationSettings* globalizationSettings = new TurkeyChartGlobalizationSettings();
    workbook.GetSettings().GetGlobalizationSettings()->SetChartSettings(globalizationSettings);

    // Get the worksheet
    Worksheet worksheet = workbook.GetWorksheets().Get(0);

    // Load the chart from source worksheet
    ChartCollection chartCollection = worksheet.GetCharts();
    Chart chart = chartCollection.Get(0);

    // Chart Calculate
    chart.Calculate();

    // Get the chart title
    Title title = chart.GetTitle();

    // Output the name of the Chart title
    std::cout << "\nWorkbook chart title: " << title.GetText().ToUtf8() << std::endl;

    // Get the legend labels
    Vector<U16String> legendEntriesLabels = chart.GetLegend().GetLegendLabels();

    // Output the name of the Legend
    for (int i = 0; i < legendEntriesLabels.GetLength(); i++)
    {
        std::cout << "\nWorkbook chart legend: " << legendEntriesLabels[i].ToUtf8() << std::endl;
    }

    // Output the name of the Axis title
    Title categoryAxisTitle = chart.GetCategoryAxis().GetTitle();
    std::cout << "\nWorkbook category axis title: " << categoryAxisTitle.GetText().ToUtf8() << std::endl;

    delete globalizationSettings;
}

int main()
{
    Aspose::Cells::Startup();
    ChartGlobalizationSettingsTest();
    Aspose::Cells::Cleanup();
    return 0;
}

الإخراج الذي تم توليده بواسطة رمز العينة

هذا هو إنتاج الكونسول للكود العيني أعلاه.

Workbook chart title: Grafik Başlığı

Workbook chart legend: Artış

Workbook chart legend: Düşüş

Workbook chart legend: Toplam

Workbook category axis tile: Eksen Başlığı