In-situ translation after bulk resizing
When Japanese is translated into English, the translated text generally occupies more space than the original. This can sometimes be a problem. For example, if you use a translation tool like OmegaT
to perform an in-situ translation of a Japanese PowerPoint presentation, the English text is probably not going to fit properly. What you need is some sort of bulk text resizing tool.
PowerPoint doesn’t allow you to perform operations on all the slides in a presentation, like scaling down the font size of every text box. (As far as I can tell, it only allows you to select multiple text boxes and set them all to the same font size, one slide at a time.) However, it does support AppleScript, which can do the job for you.
The following script will adjust every text box in the entire presentation. It won’t do a perfect job because text boxes that contain text of different sizes will be resized to a single font size. However, it can save a lot of time when you have a large translated file with broken formatting.
You can run this script direct from the AppleScript Editor application, but if you think you’re going to use it a lot then you would be better off saving it in the PowerPoint scripts folder (~/Library/Application Support/Microsoft/Office/PowerPoint Script Menu Items/), from where it can be directly accessed via PowerPoint’s scripting menu.
The script below contains two variables that you can adjust to suit your needs:
minFontSize (the font size below which no scaling takes place) and
fontScaleFactor (the factor by which font sizes greater than
minFontSize are scaled). Don’t forget to save a backup before running this script.
set minFontSize to 7
set fontScaleFactor to 0.65
tell application "Microsoft PowerPoint"
tell active presentation
set theSlideCount to count slides
repeat with a from 1 to theSlideCount
set numShapes to count shapes in slide a
repeat with b from 1 to numShapes
set sz to (font size of font of text range of text frame of shape b of slide a)
if sz is greater than minFontSize then
set sz to minFontSize + (sz – minFontSize) * fontScaleFactor as integer
tell font of text range of text frame of shape b of slide a
set font size to sz