Skip to content

Commit 5182c2a

Browse files
update Open Source Docs from Roblox internal teams
1 parent 1d1a378 commit 5182c2a

File tree

5 files changed

+308
-171
lines changed

5 files changed

+308
-171
lines changed

content/en-us/production/localization/automatic-translations.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Automatic translation only provides automated translations for blank entries on
1717

1818
Automatic Text Capture (ATC) captures text strings from UI elements in your experience and adds them to your translation table. When enabled, the ATC tool adds text from UI elements encountered by users within your experience or during Studio testing.
1919

20-
ATC evaluates over time which strings should be added to your translation table, so it may take up to a few days for new strings to appear in Translator Portal after users encounter them.
20+
ATC evaluates over time which strings should be added to your translation table, so it may take up to a few days for new strings to appear in Translator Portal after users encounter them. If you require strings to be captured immediately, you can use the [Studio text capture process](#text-capture-in-studio).
2121

2222
To enable Automatic Text Capture:
2323

@@ -40,6 +40,22 @@ ATC can not capture some experience objects. These objects may require special h
4040
</ul>
4141
</Alert>
4242

43+
### Text Capture in Studio
44+
45+
There may be situations in which you need to immediately capture strings to your translation table. In these cases, you can use the text capture tool in Studio to capture strings while playtesting. These strings will be added to the localization table within 1-2 minutes of encountering them.
46+
47+
To enable text capture in Studio:
48+
49+
1. In Studio, open **Plugins** > **Localization** > **Tools**.
50+
51+
<img src="../../assets/studio/general/Plugins-Tab-Localization-Tools.png" width="60%" alt="The Studio ribbon plugins tab with localization tools button highlighted." />
52+
53+
2. Enable **Automatic Text Capture**.
54+
55+
<img src="../../assets/localization/ATC-Studio-Enabled.png" width="45%" alt="The in-Studio localization tool showing ATC toggle enabled." />
56+
57+
Studio text capture stays on if you start and stop playtesting within the same Studio session, but must be enabled again when you start a new Studio session.
58+
4359
### Automatic Cleanup
4460

4561
ATC also checks your experience for strings that no longer exist, such as usernames or strings related to a past event. By default, the tool will remove these stale entries when it identifies them. Only auto-scraped strings with automatic translations will be removed; strings that were manually added or that have manual translations will not be impacted.

content/en-us/reference/cloud/assets/v1.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -361,10 +361,10 @@
361361
},
362362
"security": [
363363
{
364-
"roblox-api-key": ["Label.Read", "Label.Write"]
364+
"roblox-api-key": ["Label.Read"]
365365
},
366366
{
367-
"roblox-oauth2": ["asset:read", "asset:write"]
367+
"roblox-oauth2": ["asset:read"]
368368
}
369369
],
370370
"x-roblox-cloud-api-operation-code-samples": [

content/en-us/reference/cloud/cloud.docs.json

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1957,7 +1957,7 @@
19571957
"tags": [
19581958
"Cloud"
19591959
],
1960-
"description": "Takes a new snapshot of the data stores in an experience.\n\n After a snapshot, the next write to every key in the experience will\n create a versioned backup of the previous data, regardless of the time of\n the last write.\n\n In effect, all data current at the time of the snapshot is guaranteed to be\n available as a versioned backup for at least 30 days.\n\n Snapshots can be taken once per UTC day, per experience. If the latest\n snapshot was taken within the same UTC day, this operation is a no-op and\n the time of the latest snapshot will be returned.\n\n For more information on using snapshots, see the [Data\n Stores](https://create.roblox.com/docs/cloud-services/data-stores#snapshots)\n Engine guide.",
1960+
"description": "Takes a new snapshot of the data stores in an experience.\n\n After a snapshot, the next write to every key in the experience\n creates a versioned backup of the previous data, regardless of the time of\n the last write.\n\n In effect, all data current at the time of the snapshot is guaranteed to be\n available as a versioned backup for at least 30 days.\n\n Snapshots can be taken once per UTC day, per experience. If the latest\n snapshot was taken within the same UTC day, this operation is a no-op and\n the time of the latest snapshot will be returned.\n\n For more information on using snapshots, see the [Data\n Stores](https://create.roblox.com/docs/cloud-services/data-stores#snapshots)\n Engine guide.",
19611961
"operationId": "Cloud_SnapshotDataStores",
19621962
"parameters": [
19631963
{
@@ -5307,7 +5307,7 @@
53075307
"tags": [
53085308
"Cloud"
53095309
],
5310-
"description": "Gets a user's basic and advanced information.\n\n To access a user's public information, no additional scopes are required.\n\n To access a user's premium or verification status, you need the following\n scopes:\n * user.advanced.read\n\n To access a user's social account information, you need the following\n scopes:\n * user.social.read",
5310+
"description": "Gets a user's basic and advanced information.\n\n To access a user's public information, no additional scopes are required.\n\n To access a user's verification status, you need the following scopes:\n * user.advanced.read\n\n To access a user's social account information, you need the following\n scopes:\n * user.social.read",
53115311
"operationId": "Cloud_GetUser",
53125312
"parameters": [
53135313
{
@@ -7522,7 +7522,7 @@
75227522
"tags": [
75237523
"Cloud"
75247524
],
7525-
"description": "Takes a new snapshot of the data stores in an experience.\n\n After a snapshot, the next write to every key in the experience will\n create a versioned backup of the previous data, regardless of the time of\n the last write.\n\n In effect, all data current at the time of the snapshot is guaranteed to be\n available as a versioned backup for at least 30 days.\n\n Snapshots can be taken once per UTC day, per experience. If the latest\n snapshot was taken within the same UTC day, this operation is a no-op and\n the time of the latest snapshot will be returned.\n\n For more information on using snapshots, see the [Data\n Stores](https://create.roblox.com/docs/cloud-services/data-stores#snapshots)\n Engine guide.",
7525+
"description": "Takes a new snapshot of the data stores in an experience.\n\n After a snapshot, the next write to every key in the experience\n creates a versioned backup of the previous data, regardless of the time of\n the last write.\n\n In effect, all data current at the time of the snapshot is guaranteed to be\n available as a versioned backup for at least 30 days.\n\n Snapshots can be taken once per UTC day, per experience. If the latest\n snapshot was taken within the same UTC day, this operation is a no-op and\n the time of the latest snapshot will be returned.\n\n For more information on using snapshots, see the [Data\n Stores](https://create.roblox.com/docs/cloud-services/data-stores#snapshots)\n Engine guide.",
75267526
"operationId": "Cloud_SnapshotDataStores",
75277527
"parameters": [
75287528
{
@@ -10872,7 +10872,7 @@
1087210872
"tags": [
1087310873
"Cloud"
1087410874
],
10875-
"description": "Gets a user's basic and advanced information.\n\n To access a user's public information, no additional scopes are required.\n\n To access a user's premium or verification status, you need the following\n scopes:\n * user.advanced.read\n\n To access a user's social account information, you need the following\n scopes:\n * user.social.read",
10875+
"description": "Gets a user's basic and advanced information.\n\n To access a user's public information, no additional scopes are required.\n\n To access a user's verification status, you need the following scopes:\n * user.advanced.read\n\n To access a user's social account information, you need the following\n scopes:\n * user.social.read",
1087610876
"operationId": "Cloud_GetUser",
1087710877
"parameters": [
1087810878
{
@@ -11147,7 +11147,7 @@
1114711147
"AcceptGroupJoinRequestRequest": {
1114811148
"type": "object",
1114911149
"properties": {},
11150-
"description": "A join request id."
11150+
"description": "A join request ID."
1115111151
},
1115211152
"AssetQuota": {
1115311153
"type": "object",
@@ -12873,7 +12873,7 @@
1287312873
"DeclineGroupJoinRequestRequest": {
1287412874
"type": "object",
1287512875
"properties": {},
12876-
"description": "A join request id."
12876+
"description": "A join request ID."
1287712877
},
1287812878
"DeveloperProduct": {
1287912879
"required": [
@@ -12990,12 +12990,12 @@
1299012990
"FlushMemoryStoreRequest": {
1299112991
"type": "object",
1299212992
"properties": {},
12993-
"description": "Asynchronously flush all data structures in the universe."
12993+
"description": "Request body not required."
1299412994
},
1299512995
"FlushMemoryStoreResponse": {
1299612996
"type": "object",
1299712997
"properties": {},
12998-
"description": "Includes the path to the flush operation and a boolean for whether or not the\n operation completed."
12998+
"description": "Returns a FlushMemoryStoreResponse object."
1299912999
},
1300013000
"GamePass": {
1300113001
"type": "object",
@@ -13077,7 +13077,7 @@
1307713077
"description": "URI for the generated thumbnail."
1307813078
}
1307913079
},
13080-
"description": "Returns the URI for the generated thumbnail."
13080+
"description": "Returns the URL for the user's avatar thumbnail."
1308113081
},
1308213082
"GetInstanceMetadata": {
1308313083
"type": "object",
@@ -13663,23 +13663,16 @@
1366313663
"description": "An arbitrary set of attributes associated with the entry.\n\n If this is not provided, existing attributes are cleared."
1366413664
}
1366513665
},
13666-
"description": "Increments entry value.\n\n If the value is not numeric, this request fails.",
13666+
"description": "Increments the entry value.\n\n If the value is not numeric, this request fails.",
1366713667
"x-oneOf": {
1366813668
"Amount": [
1366913669
"amount"
1367013670
]
1367113671
}
1367213672
},
1367313673
"IncrementOrderedDataStoreEntryRequest": {
13674-
"required": [
13675-
"path"
13676-
],
1367713674
"type": "object",
1367813675
"properties": {
13679-
"path": {
13680-
"type": "string",
13681-
"description": "The name of the ordered data store entry.\n\n Format:\n universes/{universe}/ordered-data-stores/{ordered_data_store}/scopes/{ordered_data_store_scope}/entries/{ordered_data_store_entry}"
13682-
},
1368313676
"amount": {
1368413677
"type": "number",
1368513678
"description": "The amount by which to increment the entry value. Both the existing value\n and the increment amount must be integers.",
@@ -14117,7 +14110,7 @@
1411714110
"description": "A token, which can be sent as `page_token` to retrieve the next page.\n If this field is omitted, there are no subsequent pages."
1411814111
}
1411914112
},
14120-
"description": "Returns children instances"
14113+
"description": "Returns a list of the instance's children."
1412114114
},
1412214115
"ListInventoryItemsResponse": {
1412314116
"type": "object",
@@ -14309,7 +14302,7 @@
1430914302
"description": "Present when the task execution succeeds. Contains the output of the\n execution."
1431014303
}
1431114304
},
14312-
"description": "A `LuauExecutionSessionTask` (\"task\" for short) executes a given Luau script\n in the context of a specific version of a place.\n\n In a task, physics simulation does not run. Server and local scripts within\n the place also do not automatically run.\n\n The script may access and update the data model of the place, including\n invoking any module scripts. However, data model changes are local to the\n task and cannot be persisted.\n\n The following Engine APIs are disallowed in order to prevent accidental\n modification of production data:\n\n * `Class.AssetService:CreatePlaceAsync()`\n * `Class.AssetService:SavePlaceAsync()`\n * `Class.DataStoreService:GetDataStore()`\n * `Class.DataStoreService:GetGlobalDataStore()`\n * `Class.DataStoreService:GetOrderedDataStore()`\n * `Class.MemoryStoreService:GetHashMap()`\n * `Class.MemoryStoreService:GetQueue()`\n * `Class.MemoryStoreService:GetSortedMap()`\n * `Class.Players:BanAsync()`\n * `Class.Players:UnbanAsync()`\n * `Class.Players:GetBanHistoryAsync()`\n * `Class.HttpService:GetAsync()`\n * `Class.HttpService:PostAsync()`\n * `Class.HttpService:RequestAsync()`\n * `Class.MessagingService:PublishAsync()`\n * `Class.MessagingService:SubscribeAsync()`\n * `Class.DataModel:SavePlace()`\n\n Scripts can be up to 4 MB in size and run for up to 30 seconds. Scripts that\n run for longer than 30 seconds terminate with an error.\n\n Scripts are executed as-is and do not need to be wrapped in a function.\n\n Scripts can return values (using the Luau `return` keyword). Return values\n are serialized to JSON and can be retrieved with the `Get\n LuauExecutionSessionTask` API after the task completes. The total size of the\n return values after JSON serialization must not exceed 4 MB. If the limit is\n exceeded, the task terminates with an error.\n\n If the script raises an unhandled error, the task terminates. The error\n information can be retrieved with the `GetLuauExecutionSessionTask` API.\n\n Standard output (generated by the Luau `print` function) can be retrieved\n with the `ListLuauExecutionSessionTaskLogs` method after the task completes.\n A maximum of 450 KB of logs are retained. If the amount of logs exceeds the\n limit, older logs are discarded.\n\n Information about a task is retained for 24 hours after task completion.\n\n At most two incomplete tasks are allowed per place. Attempting to create a\n third task while the first two are incomplete results in a HTTP 429 response.",
14305+
"description": "A `LuauExecutionSessionTask` (\"task\" for short) executes a given Luau script\n in the context of a specific version of a place.\n\n In a task, physics simulation does not run. Server and local scripts within\n the place also do not automatically run.\n\n The script may access and update the data model of the place, including\n invoking any module scripts. However, data model changes are local to the\n task and cannot be persisted.\n\n The following Engine APIs are disallowed in order to prevent accidental\n modification of production data:\n\n * `Class.AssetService:CreatePlaceAsync()`\n * `Class.AssetService:SavePlaceAsync()`\n * `Class.DataStoreService:GetDataStore()`\n * `Class.DataStoreService:GetGlobalDataStore()`\n * `Class.DataStoreService:GetOrderedDataStore()`\n * `Class.MemoryStoreService:GetHashMap()`\n * `Class.MemoryStoreService:GetQueue()`\n * `Class.MemoryStoreService:GetSortedMap()`\n * `Class.Players:BanAsync()`\n * `Class.Players:UnbanAsync()`\n * `Class.Players:GetBanHistoryAsync()`\n * `Class.HttpService:GetAsync()`\n * `Class.HttpService:PostAsync()`\n * `Class.HttpService:RequestAsync()`\n * `Class.MessagingService:PublishAsync()`\n * `Class.MessagingService:SubscribeAsync()`\n * `Class.DataModel:SavePlace()`\n\n Scripts can be up to 4 MB in size and run for up to 30 seconds. Scripts that\n run for longer than 30 seconds terminate with an error.\n\n Scripts are executed as-is and do not need to be wrapped in a function.\n\n Scripts can return values (using the Luau `return` keyword). Return values\n are serialized to JSON and can be retrieved with the `Get\n LuauExecutionSessionTask` API after the task completes. The total size of the\n return values after JSON serialization must not exceed 4 MB. If the limit is\n exceeded, the task terminates with an error.\n\n If the script raises an unhandled error, the task terminates. The error\n information can be retrieved with the `GetLuauExecutionSessionTask` API.\n\n Standard output (generated by the Luau `print` function) can be retrieved\n with the `ListLuauExecutionSessionTaskLogs` method after the task completes.\n A maximum of 450 KB of logs are retained. If the amount of logs exceeds the\n limit, older logs are discarded.\n\n Information about a task is retained for 24 hours after task completion.\n\n At most ten incomplete tasks are allowed per place. Attempting to create more\n tasks while the first ten are incomplete results in a HTTP 429 response.",
1431314306
"x-resource": true,
1431414307
"x-oneOf": {
1431514308
"result": [
@@ -14781,7 +14774,7 @@
1478114774
"description": "The items read from the queue"
1478214775
}
1478314776
},
14784-
"description": "Returns the specified number of items at the front of the queue"
14777+
"description": "Returns the specified number of items at the front of the queue."
1478514778
},
1478614779
"RestartUniverseServersRequest": {
1478714780
"type": "object",
@@ -14873,7 +14866,7 @@
1487314866
}
1487414867
}
1487514868
},
14876-
"description": "Returns whether a new snapshot was taken and the time of the latest\n snapshot after the operation (regardless of whether a new snapshot was\n taken).",
14869+
"description": "Returns whether a new snapshot was taken and the time of the latest snapshot\n after the operation (regardless of whether a new snapshot was taken).",
1487714870
"x-oneOf": {
1487814871
"NewSnapshotTaken": [
1487914872
"newSnapshotTaken"
@@ -15694,7 +15687,7 @@
1569415687
"premium": {
1569515688
"readOnly": true,
1569615689
"type": "boolean",
15697-
"description": "Whether the user is a premium user.\n\n To access this data, you need an API key / OAuth token with the following\n scope: user.advanced:read",
15690+
"description": "Whether the user is a premium user.",
1569815691
"x-example-values": {
1569915692
"exampleValues": [
1570015693
true

0 commit comments

Comments
 (0)