This method permits to update segments. In a typical editing environment, you would use resources/segments/search to retrieve segments, apply changes and submit those changes with the present method. Some of the properties here require you to understand concepts explained in the search API.
URL
(PUT) /api/resources/segments/view/update
PARAMETERS
The message body contains a JSON object with these properties.
scope | The scope object. It delimits the total range of segments and related resources that can be queried. Example: "scope": { "type": "Project", "projectid": 1234 } | Mandatory, object |
layout | Optional layout object. The layout is required when updating language level content such as source text or translation text. If not specified, the system expects that update operations are for the scope's source and first target language. This may not be what is expected. It is strongly recommended to explicitly set this object with the language(s) to be updated. Example for updating French and English content. The index is assigned starting from 0 and will be referenced in the updates node below. Property ftype defines the type of column, value 1 refers to the text content. "layout": { "columns": [ { "index": 0, "ftype": 1, "loc": "fr" }, { "index": 1, "ftype": 1, "loc": "en-US" } ] } When updating language custom fields or labels, to attach comments to a language, etc. then you will need to add more columns to target those properties. Please see layout object for more information. Segment level fields including segment custom fields, do not require column definitions. | Optional, object? |
updates | An array with update instructions. Example to update the English (United States) translation. The "_1" property key refers to the layout column with index = 1, prefixed with an underscore character. The sid property is the segment ID. "updates": [ { "sid": 21567228, "cols": { "_1": { "txt": { "val": "My new translation" } } } } ] Example for updating translation and setting the status to OK (green) - see resources/segments/search to learn more on the different fields and values. Example for updating multiple segments, source texts, translations and status: "updates": [ { "sid": 21567228, "cols": { "_1": { "txt": { "val": "Please click here", "st": 1 } } } }, { "sid": 21567240, "cols": { "_0": { "txt": { "val": "Öffne den Dialog" } } "_1": { "txt": { "val": "Open the dialog", "st": 1 } } } } ] | Optional, string |
RESULTS
The method returns the details of the updated segments (with the language details specified in the layout).
Each element has these properties:
result.rows | Array of the updated segments. See this page for details: Segment Details (Object) | object[] |
result.docs | Details of the documents that are referenced by result.rows. This contains the same information as sent back by resources/segments/search (check this page for details) | object[] |
results.users | Details of the users that are referenced by result.rows. This contains the same information as sent back by resources/segments/search (check this page for details) | object[] |
EXAMPLES
We submit this update:
PUT /api/resources/segments/view/update BODY: { "layout": { "columns": [ { "index": 0, "ftype": 1, "fqualifier": 0, "loc": "fr" }, { "index": 1, "ftype": 1, "fqualifier": 0, "loc": "en-US" } ] }, "scope": { "type": "Project", "projectid": 6632 }, "updates": [ { "sid": 21567228, "cols": { "_0": { "txt": { "val": "Nouvelle traduction" } } } } ] }
And get this result back:
{ "result": { "rows": [ { "no": "2", "ts": "2020-04-17T09:18:23.4389404Z", "sid": 21567229, "did": 36250, "dsid": 7719, "cty": 1, "sdid": 1, "bsid": 2, "bssid": 0, "edit": true, "tags": null, "tmx": [], "split": true, "ctx": "ListParagraph", "ctx_edit": true, "chmin": null, "chmax": null, "ch_edit": true, "lbls": [], "lbls_edit": true, "cfs": [], "cfs_edit": true, "tbx": [], "_changed": true, "cols": { "_0": { "column": 0, "txt": { "val": "Nouvelle traduction", "st": 0, "bk": 0, "tsk": null, "loc": "fr", "cmc": 0, "ed": 1, "rep": 0, "usid": 2, "usdt": "2020-04-17T09:18:23.4389404Z", "hh": false, "sim": 0, "err": null, "lck": false, "lck_edit": true, "hn": null, "hp": null, "cfs": [], "cfs_edit": true, "lbls": [], "lbls_edit": true, "usfid": null, "usfdt": null, "tbx": [], "sent": null, "sentdt": null, "tmx": [] }, "txt_edit": true }, "_1": { "column": 1, "txt": { "val": "New translation", "st": 0, "bk": 0, "tsk": null, "loc": "en-US", "cmc": 0, "ed": 0, "rep": 0, "usid": null, "usdt": "2020-04-14T12:34:32.2196478Z", "hh": false, "sim": 0, "err": null, "lck": false, "lck_edit": true, "hn": 1681133032, "hp": -126583649, "cfs": [], "cfs_edit": true, "lbls": [], "lbls_edit": true, "usfid": null, "usfdt": null, "tbx": [], "sent": null, "sentdt": null, "tmx": [] }, "txt_edit": true } } } ], "docs": { "_36250": { "did": 36250, "dsid": 7719, "name": "english.docx", "pmax": null, "pmin": null, "ptype": 4, "pdomain": "MSWORD", "previewapp": null, "previewurl": null, "previewtf": null, "edit": true } }, "users": { "_2": { "id": 2, "nm": "Internal Translator A", "cid": 2, "cnm": "My LSP" } } } }
TIPS & TRICKS
The see how searching and updating can be configured and used, we recommend this staright-forward approach: Open the new Wordbee translation editor in Google Chrome.
- Press the F12 key to open the "developer console".
- Edit segments in editor and click the Save button
- Go to the developer console, select "Network" and "XHR". Locate the last "update" API call in the list:
- Under "Headers" in the right: Scroll to the bottom and click preview to see the exact API call and its parameters:
- Under "Response" you will see the results returned by the API call
Note: The Wordbee translation editor often includes extra parameters with requests but which are optional and you do not need to include. Always check the documentation to see what is truly required to include.