{"id":4225,"date":"2014-03-13T15:54:05","date_gmt":"2014-03-13T06:54:05","guid":{"rendered":"http:\/\/www.ka-net.org\/blog\/?p=4225"},"modified":"2014-03-13T15:54:05","modified_gmt":"2014-03-13T06:54:05","slug":"google-docs%e7%94%a8%e3%82%a2%e3%83%89%e3%82%aa%e3%83%b3%e3%82%92%e4%bd%9c%e6%88%90%e3%81%99%e3%82%8b%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.ka-net.org\/blog\/?p=4225","title":{"rendered":"Google Docs\u7528\u30a2\u30c9\u30aa\u30f3\u3092\u4f5c\u6210\u3059\u308b\u3002"},"content":{"rendered":"<p>\u300c<a href=\"http:\/\/japanese.engadget.com\/2014\/03\/12\/google-docs\/\" title=\"Google Docs\u7528\u30a2\u30c9\u30aa\u30f3\u30b9\u30c8\u30a2\u304c\u30aa\u30fc\u30d7\u30f3\u3001\u8868\u8a08\u7b97\u3084\u6587\u66f8\u4f5c\u6210\u306b\u65b0\u6a5f\u80fd\u3092\u8ffd\u52a0\u53ef\u80fd\u306b - Engadget Japanese\" target=\"_blank\">Google Docs\u7528\u30a2\u30c9\u30aa\u30f3\u30b9\u30c8\u30a2\u304c\u30aa\u30fc\u30d7\u30f3\u3001\u8868\u8a08\u7b97\u3084\u6587\u66f8\u4f5c\u6210\u306b\u65b0\u6a5f\u80fd\u3092\u8ffd\u52a0\u53ef\u80fd\u306b<\/a>\u300d\u306b\u3042\u308b\u3088\u3046\u306b\u3001Google \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u6587\u66f8\u3068\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306b\u6a5f\u80fd\u3092\u8ffd\u52a0\u30fb\u62e1\u5f35\u3059\u308b\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u30a2\u30c9\u30aa\u30f3<\/span>\u300d\u3092\u516c\u958b\u3059\u308b\u305f\u3081\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3001\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u30a2\u30c9\u30aa\u30f3\u30b9\u30c8\u30a2<\/span>\u300d\u304c\u30aa\u30fc\u30d7\u30f3\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u3053\u306e\u30a2\u30c9\u30aa\u30f3\u306f\u4e00\u822c\u306e\u958b\u767a\u8005\u3082Google Apps Script\u3092\u4f7f\u3063\u3066\u7c21\u5358\u306b\u958b\u767a\u3067\u304d\u308b\u3068\u306e\u3053\u3068\u306a\u306e\u3067\u3001\u65e9\u901f\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<ol>\n<li>Google \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3067\u6587\u66f8\u3092\u65b0\u898f\u4f5c\u6210\u3057\u307e\u3059\u3002<\/li>\n<li>\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u30c4\u30fc\u30eb<\/span>\u300d\u30e1\u30cb\u30e5\u30fc\u304b\u3089\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u30b9\u30af\u30ea\u30d7\u30c8 \u30a8\u30c7\u30a3\u30bf<\/span>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_01.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_01.jpg\" alt=\"GoogleDocsAddOn_01_01\" width=\"551\" height=\"326\" class=\"alignnone size-full wp-image-4226\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_01.jpg 551w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_01-300x177.jpg 300w\" sizes=\"auto, (max-width: 551px) 100vw, 551px\" \/><\/a><\/p>\n<li>\u3088\u3046\u3053\u305d\u753b\u9762(welcome screen)\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u7a7a\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8<\/span>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_02.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_02.jpg\" alt=\"GoogleDocsAddOn_01_02\" width=\"602\" height=\"510\" class=\"alignnone size-full wp-image-4227\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_02.jpg 602w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_02-300x254.jpg 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/a><\/p>\n<li>\u6700\u521d\u306b\u8868\u793a\u3055\u308c\u308b\u30b3\u30fc\u30c9\u3092\u3059\u3079\u3066\u9078\u629e\u3057\u3066\u524a\u9664\u3057\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_03.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_03.jpg\" alt=\"GoogleDocsAddOn_01_03\" width=\"657\" height=\"381\" class=\"alignnone size-full wp-image-4228\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_03.jpg 657w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_03-300x173.jpg 300w\" sizes=\"auto, (max-width: 657px) 100vw, 657px\" \/><\/a><\/p>\n<li>\u4e0b\u8a18\u30b3\u30fc\u30c9\u3092\u8cbc\u308a\u3064\u3051\u307e\u3059\u3002<\/li>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\/**\r\n * Creates a menu entry in the Google Docs UI when the document is opened.\r\n *\/\r\nfunction onOpen() {\r\n  DocumentApp.getUi().createAddonMenu()\r\n      .addItem('Start', 'showSidebar')\r\n      .addToUi();\r\n}\r\n\r\n\/**\r\n * Runs when the add-on is installed.\r\n *\/\r\nfunction onInstall() {\r\n  onOpen();\r\n}\r\n\r\n\/**\r\n * Opens a sidebar in the document containing the add-on's user interface.\r\n *\/\r\nfunction showSidebar() {\r\n  var ui = HtmlService.createHtmlOutputFromFile('Sidebar')\r\n      .setTitle('Translate');\r\n  DocumentApp.getUi().showSidebar(ui);\r\n}\r\n\r\n\/**\r\n * Gets the text the user has selected. If there is no selection,\r\n * this function displays an error message.\r\n *\r\n * @return {Array.&lt;string&gt;} The selected text.\r\n *\/\r\nfunction getSelectedText() {\r\n  var selection = DocumentApp.getActiveDocument().getSelection();\r\n  if (selection) {\r\n    var text = &#x5B;];\r\n    var elements = selection.getSelectedElements();\r\n    for (var i = 0; i &lt; elements.length; i++) {\r\n      if (elements&#x5B;i].isPartial()) {\r\n        var element = elements&#x5B;i].getElement().asText();\r\n        var startIndex = elements&#x5B;i].getStartOffset();\r\n        var endIndex = elements&#x5B;i].getEndOffsetInclusive();\r\n\r\n        text.push(element.getText().substring(startIndex, endIndex + 1));\r\n      } else {\r\n        var element = elements&#x5B;i].getElement();\r\n        \/\/ Only translate elements that can be edited as text; skip images and\r\n        \/\/ other non-text elements.\r\n        if (element.editAsText) {\r\n          var elementText = element.asText().getText();\r\n          \/\/ This check is necessary to exclude images, which return a blank\r\n          \/\/ text element.\r\n          if (elementText != '') {\r\n            text.push(elementText);\r\n          }\r\n        }\r\n      }\r\n    }\r\n    if (text.length == 0) {\r\n      throw 'Please select some text.';\r\n    }\r\n    return text;\r\n  } else {\r\n    throw 'Please select some text.';\r\n  }\r\n}\r\n\r\n\/**\r\n * Gets the stored user preferences for the origin and destination languages,\r\n * if they exist.\r\n *\r\n * @return {Object} The user's origin and destination language preferences, if\r\n *     they exist.\r\n *\/\r\nfunction getPreferences() {\r\n  var userProperties = PropertiesService.getUserProperties();\r\n  var languagePrefs = {\r\n    originLang: userProperties.getProperty('originLang'),\r\n    destLang: userProperties.getProperty('destLang')\r\n  };\r\n  return languagePrefs;\r\n}\r\n\r\n\/**\r\n * Gets the user-selected text and translates it from the origin language to the\r\n * destination language. The languages are notated by their two-letter short\r\n * form. For example, English is 'en', and Spanish is 'es'. The origin language\r\n * may be specified as an empty string to indicate that Google Translate should\r\n * auto-detect the language.\r\n *\r\n * @param {string} origin The two-letter short form for the origin language.\r\n * @param {string} dest The two-letter short form for the destination language.\r\n * @param {boolean} savePrefs Whether to save the origin and destination\r\n *     language preferences.\r\n * @return {string} The result of the translation.\r\n *\/\r\nfunction runTranslation(origin, dest, savePrefs) {\r\n  var text = getSelectedText();\r\n  if (savePrefs == true) {\r\n    var userProperties = PropertiesService.getUserProperties();\r\n    userProperties.setProperty('originLang', origin);\r\n    userProperties.setProperty('destLang', dest);\r\n  }\r\n\r\n  var translated = &#x5B;];\r\n  for (var i = 0; i &lt; text.length; i++) {\r\n    translated.push(LanguageApp.translate(text&#x5B;i], origin, dest));\r\n  }\r\n\r\n  return translated.join('\\n');\r\n}\r\n\r\n\/**\r\n * Replaces the text of the current selection with the provided text, or\r\n * inserts text at the current cursor location. (There will always be either\r\n * a selection or a cursor.) If multiple elements are selected, only inserts the\r\n * translated text in the first element that can contain text and removes the\r\n * other elements.\r\n *\r\n * @param {string} newText The text with which to replace the current selection.\r\n *\/\r\nfunction insertText(newText) {\r\n  var selection = DocumentApp.getActiveDocument().getSelection();\r\n  if (selection) {\r\n    var replaced = false;\r\n    var elements = selection.getSelectedElements();\r\n    if (elements.length == 1 &amp;&amp;\r\n        elements&#x5B;0].getElement().getType() ==\r\n        DocumentApp.ElementType.INLINE_IMAGE) {\r\n      throw &quot;Can't insert text into an image.&quot;;\r\n    }\r\n    for (var i = 0; i &lt; elements.length; i++) {\r\n      if (elements&#x5B;i].isPartial()) {\r\n        var element = elements&#x5B;i].getElement().asText();\r\n        var startIndex = elements&#x5B;i].getStartOffset();\r\n        var endIndex = elements&#x5B;i].getEndOffsetInclusive();\r\n\r\n        var remainingText = element.getText().substring(endIndex + 1);\r\n        element.deleteText(startIndex, endIndex);\r\n        if (!replaced) {\r\n          element.insertText(startIndex, newText);\r\n          replaced = true;\r\n        } else {\r\n          \/\/ This block handles a selection that ends with a partial element. We\r\n          \/\/ want to copy this partial text to the previous element so we don't\r\n          \/\/ have a line-break before the last partial.\r\n          var parent = element.getParent();\r\n          parent.getPreviousSibling().asText().appendText(remainingText);\r\n          \/\/ We cannot remove the last paragraph of a doc. If this is the case,\r\n          \/\/ just remove the text within the last paragraph instead.\r\n          if (parent.getNextSibling()) {\r\n            parent.removeFromParent();\r\n          } else {\r\n            element.removeFromParent();\r\n          }\r\n        }\r\n      } else {\r\n        var element = elements&#x5B;i].getElement();\r\n        if (!replaced &amp;&amp; element.editAsText) {\r\n          \/\/ Only translate elements that can be edited as text, removing other\r\n          \/\/ elements.\r\n          element.clear();\r\n          element.asText().setText(newText);\r\n          replaced = true;\r\n        } else {\r\n          \/\/ We cannot remove the last paragraph of a doc. If this is the case,\r\n          \/\/ just clear the element.\r\n          if (element.getNextSibling()) {\r\n            element.removeFromParent();\r\n          } else {\r\n            element.clear();\r\n          }\r\n        }\r\n      }\r\n    }\r\n  } else {\r\n    var cursor = DocumentApp.getActiveDocument().getCursor();\r\n    var surroundingText = cursor.getSurroundingText().getText();\r\n    var surroundingTextOffset = cursor.getSurroundingTextOffset();\r\n\r\n    \/\/ If the cursor follows or preceds a non-space character, insert a space\r\n    \/\/ between the character and the translation. Otherwise, just insert the\r\n    \/\/ translation.\r\n    if (surroundingTextOffset &gt; 0) {\r\n      if (surroundingText.charAt(surroundingTextOffset - 1) != ' ') {\r\n        newText = ' ' + newText;\r\n      }\r\n    }\r\n    if (surroundingTextOffset &lt; surroundingText.length) {\r\n      if (surroundingText.charAt(surroundingTextOffset) != ' ') {\r\n        newText += ' ';\r\n      }\r\n    }\r\n    cursor.insertText(newText);\r\n  }\r\n}<\/pre>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_04.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_04.jpg\" alt=\"GoogleDocsAddOn_01_04\" width=\"774\" height=\"404\" class=\"alignnone size-full wp-image-4229\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_04.jpg 774w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_04-300x156.jpg 300w\" sizes=\"auto, (max-width: 774px) 100vw, 774px\" \/><\/a><\/p>\n<li>\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u30d5\u30a1\u30a4\u30eb<\/span>\u300d\u30e1\u30cb\u30e5\u30fc\u306e\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u65b0\u898f\u4f5c\u6210<\/span>\u300d\u304b\u3089\u300c<span style=\"color: #ff0000; font-weight: bold;\">HTML\u30d5\u30a1\u30a4\u30eb<\/span>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_05.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_05.jpg\" alt=\"GoogleDocsAddOn_01_05\" width=\"592\" height=\"467\" class=\"alignnone size-full wp-image-4230\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_05.jpg 592w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_05-300x236.jpg 300w\" sizes=\"auto, (max-width: 592px) 100vw, 592px\" \/><\/a><\/p>\n<li>\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u30c0\u30a4\u30a2\u30ed\u30b0\u3067\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u300c<span style=\"color: #ff0000; font-weight: bold;\">Sidebar<\/span>\u300d\u3068\u3057\u3066\u3001\u300c<span style=\"color: #ff0000; font-weight: bold;\">OK<\/span>\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_06.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_06.jpg\" alt=\"GoogleDocsAddOn_01_06\" width=\"513\" height=\"185\" class=\"alignnone size-full wp-image-4231\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_06.jpg 513w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_06-300x108.jpg 300w\" sizes=\"auto, (max-width: 513px) 100vw, 513px\" \/><\/a><\/p>\n<li>Sidebar.html\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u3001\u30b3\u30fc\u30c9\u3092\u3059\u3079\u3066\u9078\u629e\u3057\u3066\u524a\u9664\u3057\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_07.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_07.jpg\" alt=\"GoogleDocsAddOn_01_07\" width=\"657\" height=\"381\" class=\"alignnone size-full wp-image-4232\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_07.jpg 657w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_07-300x173.jpg 300w\" sizes=\"auto, (max-width: 657px) 100vw, 657px\" \/><\/a><\/p>\n<li>\u4e0b\u8a18\u30b3\u30fc\u30c9\u3092\u8cbc\u308a\u3064\u3051\u307e\u3059\u3002<\/li>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">&lt;link rel=&quot;stylesheet&quot; href=&quot;https:\/\/ssl.gstatic.com\/docs\/script\/css\/add-ons.css&quot;&gt;\r\n&lt;!-- The CSS package above applies Google styling to buttons and other elements. --&gt;\r\n\r\n&lt;style&gt;\r\n.branding-below {\r\n  bottom: 56px;\r\n  top: 0;\r\n}\r\n\r\n.branding-text {\r\n  left: 7px;\r\n  position: relative;\r\n  top: 3px;\r\n}\r\n\r\n.col-contain {\r\n  overflow: hidden;\r\n}\r\n\r\n.col-one {\r\n  float: left;\r\n  width: 50%;\r\n}\r\n\r\n.logo {\r\n  vertical-align: middle;\r\n}\r\n\r\n.radio-spacer {\r\n  height: 20px;\r\n}\r\n\r\n.width-100 {\r\n  width: 100%;\r\n}\r\n&lt;\/style&gt;\r\n\r\n&lt;div class=&quot;sidebar branding-below&quot;&gt;\r\n  &lt;form&gt;\r\n    &lt;div class=&quot;block col-contain&quot;&gt;\r\n      &lt;div class=&quot;col-one&quot;&gt;\r\n        &lt;b&gt;Selected text&lt;\/b&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;origin&quot; id=&quot;radio-origin-auto&quot; value=&quot;&quot; checked=&quot;checked&quot;&gt;\r\n          &lt;label for=&quot;radio-origin-auto&quot;&gt;Auto-detect&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;origin&quot; id=&quot;radio-origin-en&quot; value=&quot;en&quot;&gt;\r\n          &lt;label for=&quot;radio-origin-en&quot;&gt;English&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;origin&quot; id=&quot;radio-origin-fr&quot; value=&quot;fr&quot;&gt;\r\n          &lt;label for=&quot;radio-origin-fr&quot;&gt;French&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;origin&quot; id=&quot;radio-origin-de&quot; value=&quot;de&quot;&gt;\r\n          &lt;label for=&quot;radio-origin-de&quot;&gt;German&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;origin&quot; id=&quot;radio-origin-ja&quot; value=&quot;ja&quot;&gt;\r\n          &lt;label for=&quot;radio-origin-ja&quot;&gt;Japanese&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;origin&quot; id=&quot;radio-origin-es&quot; value=&quot;es&quot;&gt;\r\n          &lt;label for=&quot;radio-origin-es&quot;&gt;Spanish&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n      &lt;\/div&gt;\r\n      &lt;div&gt;\r\n        &lt;b&gt;Translate into&lt;\/b&gt;\r\n        &lt;div class=&quot;radio-spacer&quot;&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;dest&quot; id=&quot;radio-dest-en&quot; value=&quot;en&quot;&gt;\r\n          &lt;label for=&quot;radio-dest-en&quot;&gt;English&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;dest&quot; id=&quot;radio-dest-fr&quot; value=&quot;fr&quot;&gt;\r\n          &lt;label for=&quot;radio-dest-fr&quot;&gt;French&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;dest&quot; id=&quot;radio-dest-de&quot; value=&quot;de&quot;&gt;\r\n          &lt;label for=&quot;radio-dest-de&quot;&gt;German&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;dest&quot; id=&quot;radio-dest-ja&quot; value=&quot;ja&quot; checked=&quot;checked&quot;&gt;\r\n          &lt;label for=&quot;radio-dest-ja&quot;&gt;Japanese&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n        &lt;div&gt;\r\n          &lt;input type=&quot;radio&quot; name=&quot;dest&quot; id=&quot;radio-dest-es&quot; value=&quot;es&quot;&gt;\r\n          &lt;label for=&quot;radio-dest-es&quot;&gt;Spanish&lt;\/label&gt;\r\n        &lt;\/div&gt;\r\n      &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n\r\n    &lt;div class=&quot;block form-group&quot;&gt;\r\n      &lt;label for=&quot;translated-text&quot;&gt;&lt;b&gt;Translation&lt;\/b&gt;&lt;\/label&gt;\r\n      &lt;textarea class=&quot;width-100&quot; id=&quot;translated-text&quot; rows=&quot;10&quot;&gt;&lt;\/textarea&gt;\r\n    &lt;\/div&gt;\r\n\r\n    &lt;div class=&quot;block&quot;&gt;\r\n      &lt;input type=&quot;checkbox&quot; id=&quot;save-prefs&quot;&gt;\r\n      &lt;label for=&quot;save-prefs&quot;&gt;Use these languages by default&lt;\/label&gt;\r\n    &lt;\/div&gt;\r\n\r\n   &lt;div class=&quot;block&quot; id=&quot;button-bar&quot;&gt;\r\n      &lt;button class=&quot;blue&quot; id=&quot;run-translation&quot;&gt;Translate&lt;\/button&gt;\r\n      &lt;button id=&quot;insert-text&quot;&gt;Insert&lt;\/button&gt;\r\n    &lt;\/div&gt;\r\n  &lt;\/form&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;div class=&quot;sidebar bottom&quot;&gt;\r\n  &lt;img alt=&quot;Add-on logo&quot; class=&quot;logo&quot; width=&quot;27&quot; height=&quot;27&quot;\r\n      src=&quot;https:\/\/googledrive.com\/host\/0B0G1UdyJGrY6XzdjQWF4a1JYY1k\/translate-logo-small.png&quot;&gt;\r\n  &lt;span class=&quot;gray branding-text&quot;&gt;Translate sample by Google&lt;\/span&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;script src=&quot;\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.9.1\/jquery.min.js&quot;&gt;\r\n&lt;\/script&gt;\r\n&lt;script&gt;\r\n  \/**\r\n   * On document load, assign click handlers to each button and try to load the\r\n   * user's origin and destination language preferences if previously set.\r\n   *\/\r\n  $(function() {\r\n    $('#run-translation').click(runTranslation);\r\n    $('#insert-text').click(insertText);\r\n    google.script.run.withSuccessHandler(loadPreferences)\r\n        .withFailureHandler(showError).getPreferences();\r\n  });\r\n\r\n  \/**\r\n   * Callback function that populates the origin and destination selection\r\n   * boxes with user preferences from the server.\r\n   *\r\n   * @param {Object} languagePrefs The saved origin and destination languages.\r\n   *\/\r\n  function loadPreferences(languagePrefs) {\r\n    $('input:radio&#x5B;name=&quot;origin&quot;]')\r\n        .filter('&#x5B;value=' + languagePrefs.originLang + ']')\r\n        .attr('checked', true);\r\n    $('input:radio&#x5B;name=&quot;dest&quot;]')\r\n        .filter('&#x5B;value=' + languagePrefs.destLang + ']')\r\n        .attr('checked', true);\r\n  }\r\n\r\n  \/**\r\n   * Runs a server-side function to translate the user-selected text and update\r\n   * the sidebar UI with the resulting translation.\r\n   *\/\r\n  function runTranslation() {\r\n    this.disabled = true;\r\n    $('#error').remove();\r\n    var origin = $('input&#x5B;name=origin]:checked').val();\r\n    var dest = $('input&#x5B;name=dest]:checked').val();\r\n    var savePrefs = $('#save-prefs').is(':checked');\r\n    google.script.run\r\n        .withSuccessHandler(\r\n          function(translatedText, element) {\r\n            $('#translated-text').val(translatedText);\r\n            element.disabled = false;\r\n          })\r\n        .withFailureHandler(\r\n          function(msg, element) {\r\n            showError(msg, $('#button-bar'));\r\n            element.disabled = false;\r\n          })\r\n        .withUserObject(this)\r\n        .runTranslation(origin, dest, savePrefs);\r\n  }\r\n\r\n  \/**\r\n   * Runs a server-side function to insert the translated text into the document\r\n   * at the user's cursor or selection.\r\n   *\/\r\n  function insertText() {\r\n    this.disabled = true;\r\n    $('#error').remove();\r\n    google.script.run\r\n        .withSuccessHandler(\r\n          function(returnSuccess, element) {\r\n            element.disabled = false;\r\n          })\r\n        .withFailureHandler(\r\n          function(msg, element) {\r\n            showError(msg, $('#button-bar'));\r\n            element.disabled = false;\r\n          })\r\n        .withUserObject(this)\r\n        .insertText($('#translated-text').val());\r\n  }\r\n\r\n  \/**\r\n   * Inserts a div that contains an error message after a given element.\r\n   *\r\n   * @param msg The error message to display.\r\n   * @param element The element after which to display the error.\r\n   *\/\r\n  function showError(msg, element) {\r\n    var div = $('&lt;div id=&quot;error&quot; class=&quot;error&quot;&gt;' + msg + '&lt;\/div&gt;');\r\n    $(element).after(div);\r\n  }\r\n&lt;\/script&gt;<\/pre>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_08.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_08.jpg\" alt=\"GoogleDocsAddOn_01_08\" width=\"773\" height=\"540\" class=\"alignnone size-full wp-image-4233\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_08.jpg 773w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_08-300x209.jpg 300w\" sizes=\"auto, (max-width: 773px) 100vw, 773px\" \/><\/a><\/p>\n<li>\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u30d5\u30a1\u30a4\u30eb<\/span>\u300d\u30e1\u30cb\u30e5\u30fc\u304b\u3089\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u3059\u3079\u3066\u3092\u4fdd\u5b58<\/span>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_09.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_09.jpg\" alt=\"GoogleDocsAddOn_01_09\" width=\"418\" height=\"462\" class=\"alignnone size-full wp-image-4234\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_09.jpg 418w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_09-271x300.jpg 271w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><\/a><\/p>\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u3092\u5909\u66f4\u30c0\u30a4\u30a2\u30ed\u30b0\u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u3092\u300c<span style=\"color: #ff0000; font-weight: bold;\">Translate Quickstart<\/span>\u300d\u3068\u3057\u3066\u3001\u300c<span style=\"color: #ff0000; font-weight: bold;\">OK<\/span>\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_10.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_10.jpg\" alt=\"GoogleDocsAddOn_01_10\" width=\"531\" height=\"185\" class=\"alignnone size-full wp-image-4235\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_10.jpg 531w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_10-300x104.jpg 300w\" sizes=\"auto, (max-width: 531px) 100vw, 531px\" \/><\/a><\/p>\n<li>\u30b9\u30af\u30ea\u30d7\u30c8 \u30a8\u30c7\u30a3\u30bf\u3092\u7d42\u4e86\u3057\u30011.\u3067\u4f5c\u6210\u3057\u305f\u6587\u66f8\u3082\u4e00\u5ea6\u9589\u3058\u307e\u3059\u3002<\/li>\n<li>12.\u3067\u9589\u3058\u305f\u6587\u66f8\u3092\u518d\u5ea6\u958b\u304f\u3068\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u30a2\u30c9\u30aa\u30f3<\/span>\u300d\u30e1\u30cb\u30e5\u30fc\u306b\u300c<span style=\"color: #ff0000; font-weight: bold;\">Translate Quickstart<\/span>\u300d\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_11.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_11.jpg\" alt=\"GoogleDocsAddOn_01_11\" width=\"581\" height=\"204\" class=\"alignnone size-full wp-image-4236\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_11.jpg 581w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_11-300x105.jpg 300w\" sizes=\"auto, (max-width: 581px) 100vw, 581px\" \/><\/a><\/p>\n<li>\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u30a2\u30c9\u30aa\u30f3<\/span>\u300d\u30e1\u30cb\u30e5\u30fc\u306e\u300c<span style=\"color: #ff0000; font-weight: bold;\">Translate Quickstart<\/span>\u300d\u304b\u3089\u300c<span style=\"color: #ff0000; font-weight: bold;\">Start<\/span>\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_12.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_12.jpg\" alt=\"GoogleDocsAddOn_01_12\" width=\"747\" height=\"207\" class=\"alignnone size-full wp-image-4237\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_12.jpg 747w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_12-300x83.jpg 300w\" sizes=\"auto, (max-width: 747px) 100vw, 747px\" \/><\/a><\/p>\n<li>\u627f\u8a8d\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u305f\u3089\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u7d9a\u884c<\/span>\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3001\u7d9a\u3044\u3066\u8868\u793a\u3055\u308c\u308b\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u300c<span style=\"color: #ff0000; font-weight: bold;\">\u627f\u8a8d\u3059\u308b<\/span>\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_13.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_13.jpg\" alt=\"GoogleDocsAddOn_01_13\" width=\"293\" height=\"183\" class=\"alignnone size-full wp-image-4238\" \/><\/a><\/p>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_14.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_14.jpg\" alt=\"GoogleDocsAddOn_01_14\" width=\"598\" height=\"498\" class=\"alignnone size-full wp-image-4239\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_14.jpg 598w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_14-300x249.jpg 300w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><\/a><\/p>\n<li>Google \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u753b\u9762\u53f3\u5074\u306b\u300c<span style=\"color: #ff0000; font-weight: bold;\">Translate<\/span>\u300d\u304c\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_15.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_15.jpg\" alt=\"GoogleDocsAddOn_01_15\" width=\"1061\" height=\"787\" class=\"alignnone size-full wp-image-4240\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_15.jpg 1061w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_15-300x222.jpg 300w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_15-1024x759.jpg 1024w\" sizes=\"auto, (max-width: 1061px) 100vw, 1061px\" \/><\/a><\/p>\n<li>\u6587\u66f8\u4e2d\u306e\u6587\u5b57\u5217\u3092\u9078\u629e\u5f8c\u3001Translate\u4e0a\u3067\u8a00\u8a9e\u3092\u9078\u3073\u300c<span style=\"color: #ff0000; font-weight: bold;\">Translate<\/span>\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u30c6\u30ad\u30b9\u30c8\u30a8\u30ea\u30a2\u306b\u7ffb\u8a33\u3055\u308c\u305f\u6587\u5b57\u5217\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_16.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_16.jpg\" alt=\"GoogleDocsAddOn_01_16\" width=\"1061\" height=\"787\" class=\"alignnone size-full wp-image-4241\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_16.jpg 1061w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_16-300x222.jpg 300w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_16-1024x759.jpg 1024w\" sizes=\"auto, (max-width: 1061px) 100vw, 1061px\" \/><\/a><\/p>\n<li>\u3055\u3089\u306b\u300c<span style=\"color: #ff0000; font-weight: bold;\">Insert<\/span>\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3053\u3068\u3067\u3001\u30c6\u30ad\u30b9\u30c8\u30a8\u30ea\u30a2\u306e\u6587\u5b57\u5217\u3092\u6587\u66f8\u306b\u633f\u5165\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n<p><a href=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_17.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_17.jpg\" alt=\"GoogleDocsAddOn_01_17\" width=\"1061\" height=\"787\" class=\"alignnone size-full wp-image-4242\" srcset=\"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_17.jpg 1061w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_17-300x222.jpg 300w, https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/GoogleDocsAddOn_01_17-1024x759.jpg 1024w\" sizes=\"auto, (max-width: 1061px) 100vw, 1061px\" \/><\/a>\n<\/ol>\n<p>\u4ee5\u4e0a\u306e\u624b\u9806\u3067\u3001\u81ea\u5206\u3067\u30a2\u30c9\u30aa\u30f3\u3092\u4f5c\u6210\u30fb\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<br \/>\n\u4e0a\u8a18\u624b\u9806\u306f\u3001\u300c<a href=\"https:\/\/developers.google.com\/apps-script\/quickstart\/docs\" title=\"Quickstart: Add-on for Google Docs - Google Apps Script - Google Developers\" target=\"_blank\">Quickstart: Add-on for Google Docs<\/a>\u300d\u306b\u8f09\u3063\u3066\u3044\u308b\u624b\u9806\u306b\u753b\u50cf\u3092\u4ed8\u3051\u8db3\u3057\u305f\u3060\u3051\u3067\u3059\u304c\u3001\u304a\u304a\u3088\u305d\u306e\u6982\u8981\u306f\u63b4\u3081\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u4f5c\u6210\u3057\u305f\u30a2\u30c9\u30aa\u30f3\u3092\u30b9\u30c8\u30a2\u3067\u516c\u958b\u3059\u308b\u306b\u306f\u3001\u5be9\u67fb\u306b\u30d1\u30b9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3088\u3046\u3067\u3059\u3002\u8a73\u3057\u304f\u306f\u4e0b\u8a18\u30da\u30fc\u30b8\u3092\u3054\u53c2\u7167\u304f\u3060\u3055\u3044\u3002<\/p>\n<p><strong>\u30fbPublishing an Add-on &#8211; Google Apps Script &#8211; Google Developers<\/strong><br \/>\n<a href=\"https:\/\/developers.google.com\/apps-script\/add-ons\/publish\" title=\"Publishing an Add-on - Google Apps Script - Google Developers\" target=\"_blank\">https:\/\/developers.google.com\/apps-script\/add-ons\/publish<\/a><\/p>\n<p>\u3057\u304b\u3057\u306a\u304c\u3089\u3053\u306e\u6a5f\u80fd\u3001\u5f53\u30d6\u30ed\u30b0\u3067\u53d6\u308a\u6271\u3063\u3066\u3044\u308b\u3001Microsoft Office\u306e\u300c<a href=\"\/\/www.ka-net.org\/blog\/?page_id=2760\" title=\"Office \u7528\u30a2\u30d7\u30ea\" target=\"_blank\">Office \u7528\u30a2\u30d7\u30ea<\/a>\u300d\u306b\u305d\u3063\u304f\u308a\u3067\u3059\u306d\uff01<br \/>\n\u4eca\u5f8c\u3082\u8981\u6ce8\u76ee\u306e\u6a5f\u80fd\u3067\u3059\u3002<\/p>\n<h4>\u25a0 \u95a2\u9023Web\u30da\u30fc\u30b8<\/h4>\n<p><strong>\u30fbGoogle Developers Blog: Building Sheets and Docs Add-ons<\/strong><br \/>\n<a href=\"http:\/\/googledevelopers.blogspot.jp\/2014\/03\/building-sheets-and-docs-add-ons.html\" title=\"Google Developers Blog: Building Sheets and Docs Add-ons\" target=\"_blank\">http:\/\/googledevelopers.blogspot.jp\/2014\/03\/building-sheets-and-docs-add-ons.html<\/a><br \/>\n<strong>\u30fbGoogle Apps Script &#8211; Google Developers<\/strong><br \/>\n<a href=\"https:\/\/developers.google.com\/apps-script\/add-ons\/\" title=\"Google Apps Script - Google Developers\" target=\"_blank\">https:\/\/developers.google.com\/apps-script\/add-ons\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\u300cGoogle Docs\u7528\u30a2\u30c9\u30aa\u30f3\u30b9\u30c8\u30a2\u304c\u30aa\u30fc\u30d7\u30f3\u3001\u8868\u8a08\u7b97\u3084\u6587\u66f8\u4f5c\u6210\u306b\u65b0\u6a5f\u80fd\u3092\u8ffd\u52a0\u53ef\u80fd\u306b\u300d\u306b\u3042\u308b\u3088\u3046\u306b\u3001Google \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u6587\u66f8\u3068\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306b\u6a5f\u80fd\u3092\u8ffd\u52a0\u30fb\u62e1\u5f35\u3059\u308b\u300c\u30a2\u30c9\u30aa\u30f3\u300d\u3092\u516c\u958b\u3059\u308b\u305f\u3081\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0 [&hellip;]","protected":false},"author":1,"featured_media":7113,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[126],"tags":[],"class_list":["post-4225","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-google"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.ka-net.org\/blog\/wp-content\/uploads\/eyecatch-Google.png","jetpack_shortlink":"https:\/\/wp.me\/p4UZZr-169","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4225"}],"version-history":[{"count":2,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4225\/revisions"}],"predecessor-version":[{"id":4245,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4225\/revisions\/4245"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=\/wp\/v2\/media\/7113"}],"wp:attachment":[{"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ka-net.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}