it-swarm.asia

تغيير لغة التدقيق الإملائي في عرض تقديمي لـ PowerPoint

تلقيت عرضًا تقديميًا لـ PowerPoint يحتوي على عشرات الشرائح ، تحتوي كل منها على عدد من مربعات النص. على الرغم من أن العرض التقديمي مكتوب باللغة الإنجليزية ، فإن لغة التدقيق الإملائي يتم تعيينها على الفرنسية الكندية. أحاول تغيير اللغة إلى اللغة الإنجليزية ، لكن حتى لو قمت بتحديد كل الشرائح وحددت عنصرًا جديدًا في مربع الحوار Language ، فإن لغة مربعات النص تظل كما هي. لذلك لا بد لي من الانتقال بالشريحة باختيار مربعات النص ثم تغيير اللغة بشكل فردي.

هل هناك طريقة أفضل للقيام بذلك؟

إصدار PowerPoint الذي قمت بتثبيته هو SP3 2002.

40
Leonardo

يحتوي هذا الموضوع على الإجابة التي عملت بالنسبة لي.

الخطوات التي اتبعتها كانت:

  1. قم بإنشاء ماكرو جديد:
    1.1. انتقل إلى أدوات ، ماكرو ، محرر Visual Basic.
    1.2. إدراج وحدة نمطية فارغة جديدة عن طريق تحديد إدراج ، وحدة نمطية.
  2. الصق هذا الرمز في اللوحة اليمنى وحفظ الماكرو:

    Option Explicit  
    Public Sub ChangeSpellCheckingLanguage()  
        Dim j As Integer, k As Integer, scount As Integer, fcount As Integer
        scount = ActivePresentation.Slides.Count
        For j = 1 To scount
            fcount = ActivePresentation.Slides(j).Shapes.Count
            For k = 1 To fcount
                If ActivePresentation.Slides(j).Shapes(k).HasTextFrame Then
                    ActivePresentation.Slides(j).Shapes(k) _
                    .TextFrame.TextRange.LanguageID = msoLanguageIDEnglishAUS
                End If
            Next k
        Next j
    End Sub
    

    msoLanguageIDEnglishAUS يمكن استبداله بأي لغة مطلوبة. يمكن الاطلاع على قائمة اللغات الكاملة هنا .

  3. قم بتنفيذ الماكرو (عن طريق الضغط على F5 داخل المحرر ، أو عن طريق تحديد أدوات ، ماكرو ، وحدات ماكرو ، ChangeSpellCheckingLanguage ، والنقر فوق تشغيل).

بعد ذلك ، ستحصل جميع عناصر النص في العرض التقديمي على لغة الهجاء الجديدة.

17
Leonardo

أعلم أن الإجابة قد تم قبولها بالفعل (والتي أعطيتها +1 لها لأنها تعمل ومكتوبة جيدًا) ، ولكن قد تكون فكرة إنشاء ماكرو أو حفظه أو استخدامه ماكرو مخيفة للغاية (أو قد تحتوي على إعدادات أمان في بعض الأشخاص) المكان الذي يجعل من الصعب تحقيق هذا). لذلك فإن الحل الأسهل هو استخدام وظائف مدمجة عادية للقيام بذلك. الخدعة هي أن تكون قادرًا على تحديد كل الكائنات الموجودة على جميع الشرائح في وقت واحد ، بدلاً من الشرائح نفسها ، وهذا يتحقق بسهولة في عرض المخطط التفصيلي (للأسف ميزة غير مستغلة بشكل جيد ، ولكنها رائعة لإعادة التنظيم سطح منزلق ، يشجع ويخفض عدد القطع الكاملة ، مثل الرصاصات> شرائح جديدة أو العكس.

ليس لدي برنامج PowerPoint 2002 ("XP") لذلك لست متأكدًا مما إذا كنت بحاجة إلى اتباع الإرشادات لعام 2000 أو لعام 2003 ، ولذا فإنني أغطي كلاهما هنا:

  • في PP 2000 : انتقل إلى عرض المخطط التفصيلي ، وهو الرمز الثاني من اليسار في أسفل يسار الشاشة ( يشبه الخطوط مع المسافات البادئة).
  • في PP 2003 وما بعده : انتقل إلى العرض "العادي" (تخطيط الأجزاء الثلاثة) وفي الجزء العلوي من لوحة التجول ، اختر "الخطوط العريضة" بدلاً من "الشرائح"

في الإصدارات الأقدم ، تأكد من ظهور شريط الأدوات "مخطط تفصيلي" (View > Toolbars > Outlining) وانقر فوق Expand all زر (الإصدارات الأحدث تتيح لك الحصول على هذا من خلال النقر بزر الماوس الأيمن).

  • Ctrl-A لتحديد الكل.
  • Tools > Language > اختر لغتك لتعيين.
  • (من PowerPoint 2013) REVIEW > Language > تعيين لغة التدقيق

تم إنجاز المهمة.

وبالمثل ، في حين أن كل شيء قمت بتحديده ، يمكنك تغيير أشياء أخرى مثل الخطوط والألوان وما إلى ذلك. وبالرغم من ذلك في كثير من الحالات ، يتم القيام بذلك بشكل أفضل عن طريق تغيير الشريحة الرئيسية ، فإن العرض التقديمي الذي كان يحتوي على العديد من المحررين قد يحتوي على الكثير من مجموعة التنسيق "الثابت" والتي ينحرف عن المعلم الأساسي ويحتاج إلى إعادة تعيين لتكون متسقة. يمكنك أيضًا إعادة تعيين الشرائح الفردية إلى النمط الرئيسي ، ولكن قد يؤدي ذلك إلى تحرك العناصر النائبة أيضًا ، مما قد يكون غير مرغوب فيه في بعض المواقف.

33
AdamV

بعد العديد من العروض التقديمية حيث قمت بذلك يدويًا أو استخدمت ماكرو لمرة واحدة ، قمت أخيرًا بتحويله وجعله في وظيفة PowerPoint مناسبة.

لقد قمت بتحميله إلى موقع الويب الخاص بي: PowerPoint LanguageFixer

إنه يعتني بـ:

  • ضبط اللغة الافتراضية
  • جميع الأشكال مع إطارات النص
  • إطارات النص بأشكال مجمعة (إلى أقصى حد ممكن)
  • النص في الجداول
  • الاشياء على الشريحة/مذكرة/سيد البيان

فقط قم بتعيين أحد مربعات النص على اللغة التي تريدها ، حددها وانقر فوق الزر.

3
Jan Schejbal

فيما يلي خياران حسب موقفك:


الموقف 1: تم تثبيت النسخة الأصلية من Office من وسائط تثبيت تستند إلى اللغة الفرنسية الكندية.

ستكون قادرًا على ضبط اللغة الافتراضية على اللغة الإنجليزية ، لكن الوظائف الأساسية ستستخدم اللغة الأم لوسائط التثبيت.

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

.


الحالة 2: يبدو أن كل شيء هو اللغة الإنجليزية ، ولكن في ظروف محدودة تظهر اللغات الأجنبية.

في هذه الحالة ، فيما يلي إرشادات إصلاح Office 2002:

  1. انقر فوق قائمة ابدأ
  2. أشر إلى البرامج
  3. أشر إلى أدوات Microsoft Office
  4. انقر فوق Microsoft Office XP إعدادات اللغة.
  5. انقر فوق علامة التبويب اللغات الممكّنة.
  6. انتقل إلى مربع الإصدار الافتراضي من Microsoft Office
  7. اختر اللغة التي تريدها
  8. انقر فوق موافق. سوف تظهر رسالة تخبرك بالتغييرات التي سيتم إجراؤها.
  9. انقر فوق "متابعة"

آمل أن يساعد هذا.

1
pjemmert

لقد واجهت نفس المشكلات في العروض التقديمية التي تم إجراؤها باستخدام PowerPoint الألمانية ويتم ترجمتها يدويًا إلى الإنجليزية. المشكلة هي أن إعداد اللغة هو في الأساس التنسيق الذي يتم تطبيقه على كل عنصر مربع النص من تلقاء نفسها.

لست على دراية بأي حل مناسب - فقد تعين علي التعايش مع عدم التطابق أو تغيير "تنسيق" اللغة لكل مربع نص فردي على كل شريحة. ليس متعة ، لذلك أنا في الغالب أعيش معها.

0
Torben Gundtofte-Bruun

الشفرة المنشورة بواسطة Leonardo بسيطة وفعالة بشكل عام ، لكنها لن تؤثر على Shapes في المجموعات. يستخدم رمز أكثر عمومية العودية للتعامل مع هذه الحالة أيضًا (تم تغييره قليلاً من هنا ، وهو في نفس مؤشر الترابط مثل الرمز بواسطة ليوناردو):

Private Function ChangeLangOfAllText_caller()
    'ChangeLangOfAllText (msoLanguageIDEnglishUS)
    ChangeLangOfAllText (msoLanguageIDSpanishArgentina)
End Function

Private Function ChangeLangOfAllText(ByVal LangID As Long)
    Dim MySlide As Slide
    Dim MyShape As Shape
    Dim MyD As Design
    Dim MyHeaderFooter As HeaderFooter
    Dim i, nbs As Integer
    ''''' First deal with the master slides
    For Each MyD In ActivePresentation.Designs
        For Each MyShape In MyD.SlideMaster.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
    Next MyD
    ''''' Now deal with the slides
    ' Enable this for debugging
    'Debug.Print "File " & ActivePresentation.Name & _
      ": working with " & ActivePresentation.Slides.Count & " slides"
    For Each MySlide In ActivePresentation.Slides
        ' Enable this for debugging
        'Debug.Print " Slide index " & MySlide.SlideIndex & ", Slide number " & MySlide.SlideNumber & _
          ": working with " & MySlide.Shapes.Count & " shapes"
        For Each MyShape In MySlide.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
        ''''' Now deal with the Notes
        For Each MyShape In MySlide.NotesPage.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
        ''''' Now deal with the master ' doesn't appear to work, have to try something else
        For Each MyShape In MySlide.Master.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
    Next MySlide
End Function

Private Function ProcessShapes(MyShape As Shape, ByVal LangID As Long)
    Dim i As Integer
    If ((MyShape.Type = msoGroup) Or (MyShape.Type = msoTable)) Then
        On Error Resume Next
        For i = 1 To MyShape.GroupItems.Count
            ''' The trick is to recurse!
            ProcessShapes MyShape.GroupItems.Item(i), LangID
        Next i
    Else
        ChangeLang MyShape, LangID
    End If
End Function

Private Function ChangeLang(MyShape As Shape, ByVal LangID As Long)
    Dim i As Integer
    If (MyShape.HasTextFrame) Then
        ' Enable this for debugging
        'Debug.Print " Shape " & MyShape.ZOrderPosition & ", type: " & MyShape.Type & _
          ", has text frame: " & MyShape.HasTextFrame & ", has text: " & MyShape.TextFrame.HasText & _
          ", alt. text: " & MyShape.AlternativeText
        MyShape.TextFrame.TextRange.LanguageID = LangID
    End If
End Function
0
sancho.s